- 0
- 0
- 约1.35万字
- 约 53页
- 2019-10-12 发布于湖北
- 举报
8.5.4 定义链表结构 学号 姓名 性别 成绩 9901 liujia M 87 9902 wangkai M 89 9903 xiaohua F 81 9904 zhangli F 82 9905 wangfeng M 88 struct student { int num; char name[20]; char sex; int score; struct student *next; }; 必须的成员,否则构不成链表 学生链表的结点定义 结点 8.6 链表的基本操作 8.6.1 链表结点的插入 8.6.2 链表结点的删除 8.6.3 链表结点的查找 8.6.1 链表结点的插入 在链表中插入结点,就是把一个新结点连接到链表中。 两种情况: 在空链表中插入一个结点; 在链表的p结点之后插入一个新结点。 8.6.1 链表结点的插入 1.在空链表中插入一个结点 空链表就是头指针head为空的链表。 ⑴ 申请一个new结点。 new=(struct node *)calloc(1,sizeof(struct node)); ⑵ 为p结点填充数据。 将要存储的数据对应赋值给p结点数据域的各个成员。 ⑶ 修改有关指针的指向。 ① 将new的next成员置空,使new结点成为链表的最后一个结点。 ② 将head指向new结点。 8.6.1 链表结点的插入 2.在head链表的p结点之后插入一个结点 head链表和要插入结点new如图所示。要将new结点插入在p结点之后,就是将new结点变成结点C的下一个结点,而使new的下一个结点成为结点D。 ⑴ 使new的指针域存储结点D的首地址。 new-next=p-next; ⑵ 把new的首地址存储到结点p的指针域中。 p-next=new; 8.6.1 链表结点的插入 insert()函数 功能:在head链表的p结点之后插入值为x的结点 struct student *insert(struct node *head,struct node *p,int x) { struct node *new; new=(struct node *)calloc(1,sizeof(struct node)); new-data=x; if(head==NULL) { head=new; head-next=NULL; } else { new-next=p-next; p-next=new; } return(head); } 8.6.1 链表结点的插入 例8-7 用插入结点的方法建立图示的学生成绩链表,链表head有10个结点,每个结点存储一个学生的学号和学习成绩数据。 程序: e8-7.c 所需函数的功能 creat_node()函数:生成一个链表结点。 creat_list()函数:生成有n个struct s_node型结点的链表,函数的返回值是链表的头指针。 out_list()函数:用于输出head链表的各结点值。 8.6.1 链表结点的插入 #includestdio.h #define N 10 struct s_node /* 定义结点类型 */ { char num[4]; int score; struct s_node *next; }; int main() { struct s_node *create_node(void); struct s_node *create_list(int n); void out_list(struct s_node *head); struct s_node *head=NULL; head=create_list(N); out_list(head); return 0; } 8.6.1 链表结点的插入 /* 生成一个链表结点的函数*/ struct s_node *create_node(void) { struct s_node *p; p=(struct s_node *)calloc(1,sizeof(struct s_node)); scanf(%s%d,p-num,(p-score)); p-next=NULL; return(p); } 8.6.1 链表结点的插入 struct s_node *create_list(int n) { struct s_node *new,*p; struc
您可能关注的文档
最近下载
- 心脑血管的危害和防治.ppt
- 上海2024年高考英语试卷.doc VIP
- 2026春新版人教版八年级下册单词默写单词表(全)U1-U8中译英.docx
- 07 王涛-教师资格-数学学科知识与教学能力(高中)-第三部分第五章至第八章(46-48讲).pdf VIP
- 《业财一体化实训教程-----金蝶云星空V7.5》.pptx VIP
- 2014广东粤西北事业单位考试真题及答案——通用类.doc VIP
- 基于PLC的运料小车自动控制设计研究.docx VIP
- ISO 9001(DIS)-2026《质量管理体系——要求》(含附录使用指南-中文版-译-2025年9月).docx VIP
- 《宋代点茶文化与艺术》全套教学课件.pptx
- 年产3000吨猕猴桃果汁工厂设计_毕业设计.doc VIP
原创力文档

文档评论(0)