- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 链表
C++语言程序设计;
0050;
0050;
0050;
0050;
0050;算法分析:
假设输入的学号为0时,表示建立链表的过程结束,该结点不应链接到链表中。根据题目要求,链表中结点数据应采用结构体类型来描述。
同时定义三个指针变量head,p1,p2,它们都是结构类型的指针变量。结构指针变量head的初值为NULL(即等于0),此时是空链表(head不指向任何结点,链表中无结点),当链表建成后,应使head指向第一个结点。;建立链表的过程:
①首先利用malloc函数,在内存中开辟一个存储空间,用来存放新结点。使p1,p2都指向该存储空间,然后从键盘上输入一个学生的数据进行判断,如果输入的p1-num不等于0,而且是第一个结点数据(n=1),则把p1的值赋给head(head=p1),这样,结构指针head就指向了链表中的第一个结点。;
;
;
;
;
;
;
;
;struct student * creat( )
{ student *head,*p1,*p2; int n=0;
head = NULL; //在没有创建任何结点时,表头指向空
p1 = ( struct student * )malloc(sizeof(struct student));
//创建一个新结点 -------(1)
p2 = p1;
scanf(“%ld%f”,p1-num,p1-score);
/*输入第一个结点的学生数据*/;
; while(p1-num != 0) // ------------(2)
{ n ++;
if (n == 1)
head = p1; // 将链表中第一个新建结点作为表头
else{ p2-next = p1; p2 = p1; }
p1 = new(student); // 新建一个结点
cinp1-nump1-score;
}
delete p1;
p2-next =NULL;
return head; //返回表头指针
}//end creat;
;
;
;
; 输出链表就是将链表中各结点的数据依次输出。首先要知道链表第一个结点的地址,也就是要知道表头结点head的值,然后依次通过各结点next的值找到下一个结点,就可以依次输出所有结点的数据,直到链表的尾结点为止。;
;
; 对链表的删除操作是把某个结点从链表中摘除,并不是真正从内存中将这个结点删除掉,使它脱离原来的链表,解除原来的链接关系。; 执行过程:设两个指针p1和p2,先使p1指向第一个结点。如果p1所指的结点不是要删除的结点,就将p2指向p1所指的结点(p2=p1),然后将p1指向下一个结点(p1=p1-next)。再继续判断p1所指的结点是不是要删除的结点,如此重复,直到找到要删除的结点并将其删除或是检查完全部链表为止。;
;
;struct student *dele(struct student *head, long num)
{ struct student *p1, *p2;
if (head==NULL)
{ printf(list null\n); return head; }
p1=head;
while(p1-num!=nump1-next!=NULL)
{ p2=p1; p1=p1-next; }//查找位置
if (num==p1-num)
{ if(p1==head) head=p1-next;
else p2-next=p1-next;
printf(delete:%ld\n,num);
n=n-1; } //删除成功,记录个数减一
else printf(“%ld not been found!\n”,num);
return(head);
}; 对链表的插入是指将一个结点插入到一个已有的链表中。为简单起见,假设有一个学生链表,各结点已按其成员学号(num)的值由小到大顺序排列,现在要插入一个学生的结点,要求按学号的顺序插入。 ; 过程实现:;
您可能关注的文档
- 第8章 电气自动控制.ppt
- 第8章-各行网店设计与配色案例解析.pptx
- 第8章 Java 对类的进一步讨论 - 副本.ppt
- 第8章-收入和利润管理.ppt
- 第8章 型材轧制工艺基础2015.ppt
- 第8章摄像与录像.ppt
- 人教版小学三年级数学《集合》.pptx
- 第8章第三节合理膳食与食品安全.ppt
- 第8章生态工程.ppt
- 第8章数字控制器设计.ppt
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)