链表的理解——造孽的儿子、操碎心的老妈和人狠话不多的老爸
前言
初学C语言,请大佬多提宝贵意见,感激不尽。欢迎各位初学者前来交流。
# include<stdio.h>
# include<malloc.h>struct Student
{char name[20];int age;float score;struct Student *pNext; //下一个 商家 的门牌号
};
typedef struct Student STU; //简写int main(void)
{int len, i; //len:“商家”的个数printf("Please enter the number of students\n");printf("len = %");scanf("%d", &len);STU head; //老子STU *tail; //老妈STU *p; //儿子head.pNext = NULL; //用来存放儿子造孽的门牌号,一开始都是好孩子,没有造孽,所以为“空-NULL”。(造孽:儿子到“商家”吃“霸王餐”)tail = &head; //一开始老妈在老爸这,和老爸商量着,该怎么打儿子,(打不死往死里打)。
//赋值printf("Please enter the information of students\n");for(i=0; i<len; i++){p = (STU *)malloc(sizeof(STU)); //儿子得有能造孽的店铺啊printf("Please enter information for the No.%d student ", i+1);scanf("%s%d%f",p->name, &p->age, &p->score); //可直接输入。 //以下三句代码,一定会有。顺序的话,前两句可以调换。p->pNext = NULL; //吃累了,歇一会。tail->pNext = p; //老妈告诉老爸,儿子造孽的房间号 这里的意译只适用于头结点和首节点的联系,从首节点即往后,老妈只会在店铺里留下下一个被糟蹋的店铺的房间号,让老爸自己去看。tail = p; //老妈功成名就,来到儿子刚造完孽的店铺,“等待”儿子是否还会继续造孽。}p = head.pNext ; while(p != NULL){printf("name = %-15s,age = %-5d, score = %-5f\n", p->name,p->age,p->score);p = p->pNext;}//释放动态分配p = head.pNext;while(p != NULL){head.pNext = p->pNext; //头结点里的指针现在指向与他相隔一个变量的结构体(如果头结点是第一个,那么现在他已经指向了第三个)free(p); //释放第二个p = head.pNext; //此时的p已经指向了头结点的后一个,也就是曾经的第三个(曾经的第三个变成了现在的第二个,原来的第二个已经释放了)}return 0;return 0;
}
运行结果:
链表的理解——造孽的儿子、操碎心的老妈和人狠话不多的老爸相关推荐
- 靠骁龙芯片称霸手机圈的高通,竟还为机器人操碎心
伙伴们都知道高通处理器在手机应用上有多么牛逼,像其今年最新的处理器骁龙835只要有稍微不顺,就可以直接影响到三星S8.小米6等旗舰机的上市时间,可见其有着举足轻重的地位. 然而,你并不知道高通除了在手 ...
- 通过链表深入理解Java的引用和对象
在正式介绍重点内容以前,先给像我这样的初学者强调一下 " = " 在引用和对象应用中的作用: 大致是 " = " 左边是引用," = " 右 ...
- 希尔排序、快速排序、KMP、链表的理解
创作人QQ:851301776,邮箱:lfr890207@163.com, 欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点! 个人座右铭: 1.没有横空出世,只要厚积一定发. ...
- 【C/C++】链表的理解与使用
最近不是太忙,整理些东西,工作也许用得到. 1,为什么要用到链表 数组作为存放同类数据的集合,给我们在程序设计时带来很多的方便,增加了灵活性.但数组也同样存在一些弊病.如数组的大小在定义时要事先规定, ...
- C/C++ list链表的理解以及使用
哈喽!这里是一只派大鑫,不是派大星.本着基础不牢,地动山摇的学习态度,从基础的C语言语法讲到算法再到更高级的语法及框架的学习.更好地让同样热爱编程(或是应付期末考试 狗头.jpg)的大家能够在学习阶段 ...
- 如何理解C语言链表,如何理解c语言链表
C语言链表就是一种数据结构,可以在上面动态的进行传输分配还可以定义节点数据类别或者实现对节点的增删改查等 链表是一种常见的基础数据结构,结构体指针在这里得到了充分的借助.链表可以动态的进行传输分配,也 ...
- GSEA富集分析:从概念理解到界面实操
GSEA定义 Gene Set Enrichment Analysis (基因集富集分析)用来评估一个预先定义的基因集的基因在与表型相关度排序的基因表中的分布趋势,从而判断其对表型的贡献. 其输入数据 ...
- Centos8安装mysql8,一步一错,步步为赢,步步错。让人操碎心的linux啊
来吧,第一步,还好. wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm 安装数据源,迎接错误高潮吧 y ...
- 亚马逊无人机送货:过程心酸操碎心,但结果令人欣慰
虽然比别人慢了一步,但论起整体的实力和市场,亚马逊无人机送货的未来还是相当看好的. 2013年12月,亚马逊率先提出了"无人机送货"的前沿理念.如今,三年悄然走过,亚马逊终于完成了 ...
最新文章
- Phantom.js维护者退出,项目的未来成疑
- “放到桌面”的Servlet实现
- 解析C/C++的预处理指令
- 安驾者电子狗升级步骤
- vue clone html,Vue.js之slot深度复制详解
- java读取excel某个单元格的值_java poi怎么获取excel单元格的内容
- CSS深入理解学习笔记之vertical-align
- lisp 任意点 曲线距离_lisp程序能求多段线上任意一点到其中一个端点的距离,,每次要量桩号很烦...哪位大侠给个..谢谢了...........
- 2015年01月30日 - Git五分钟教程
- js forEach跳出循环
- C++判断是否为一个凹多边形
- Flask图片验证码注册功能
- 洛谷_P1007 独木桥_思维
- 常见的各种字幕内容总结(字幕基础、字幕介绍、字幕种类及常见格式、SRT+ASS+LYC等等)
- API接口管理平台-rap
- 76篇 ICCV 2019 论文实现代码
- xpath爬取当当网
- 韦东山数码相框项目进度一
- 华硕笔记本电脑计算机专业,超详细华硕笔记本电脑重装系统图文教程
- 上海现有电视频道分配表
热门文章
- 当装好anaconda的python3.7环境后,如何使的spyder运行在其中,anaconda中打不开spyder怎么办,spyder中导入不了opencv模块怎么办
- 长虹电视机android 4.0,长虹3013智能电视A7000 B5000 安卓4.0升级包
- JAVA高考加油,高考加油的话 励志语录
- 终于跟女朋友解释清楚了什么是云计算
- 混凝土工程外观弊病及处理办法
- Ubuntu16.04+Cuda8.0+Caffe+ Opencv3.2+Matlab2015b的配置、安装与编译(四)
- 四川大学计算机学院卢莉,四川大学卢莉等 | 用于视频跟踪的非对称判别相关滤波器...
- JavaScript作业3
- mac基本操作和关闭安全模和任务监控器
- 解决argument list too long错误