C第8章简单链表及其应用._第1页
C第8章简单链表及其应用._第2页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、简单链表及其应用1030饯分配固定长度连续空间,操作没有灵活性 如何添加新转入学生信息?思考: 如何描述个班的学生基本信息 (学号、V名、 年龄等) ?struct studentint ID;char Name20; int age;stu30;链表链表的特点couthead-ID;student *p=head; coutp-Name;指向下一个结点实体数堀同类型指针结点将若干个同类型的结构体类型数据按一定的原 则连接起来。;structstudentp=p-next; coutp-age;链表的特点结点可不连续存储操作灵活,便于扩充(动态分配空间)链表的特点head10021002李19

2、1030钱181030181031王18NULL103118NULL链表的操作之建立无序链链表为空(head=O)head=p1;2 p2=p1;链表的操作之建立无序链链表为空(head=O) head=p1; p2=p1;链表不为空 p2-next=p1;口p2=p1;headp1用来指向新结点p2用来指向链表当前尾结点dataldata2链表的操作之输出链表上各个结点的值遍历链表结点(“看” 一个输出一个) p=head; coutp-data;2p=p-next; coutp-data;. p=p-next; /p=NULL(遍历的终止条件)链表的操作之删除某结点-先找到要删除结点 一一

3、如果是头结点p1=head;head=head-n ext; delete p1;datalpheaddata2Tdata3data4head|data4|A链表的操作之删除某结点先找到要删除结点一一以“找到”或“到尾找不到”为终止条件的遍历p2=head;while(p2-data!=data3 & p2-next!=NULL)p2=p2- next;链表的操作之删除某结点 p1-next=p2- n ext;p2 指向要删除结点,p1 指向要删除结点的前驱结点先找到要删除结点(包括其前驱结点),再删除head|dayj|data4链表的操作之删除整个链遍历链表(“看” 一个删一个)

4、 while(head!=NULL) p1=head;head 二 head-next; 或 head=p1 next; delete p1; _headdata4A链表的操作之插入结点保持有序p-next=head; head=p;链表的操作之插入结点保持有序p2-next=p; p-next=O;head3链表的操作之插入结点保持有序p-next=p2; p1-next=p;先找到插入点!pP1I3JP2head1T-E链表的操作之总结链表的操作主要依靠指针和动态空间实现头指针是链表的访问依据改变部分链表的函数(插入、删除结点等)需要 返回改变后的链表(通过头指针)课堂练习设计函数统计链表

5、的结点个数遍历链表,“看” 一个,计数器累加一次 返回值为结点的个数,整型int count(const node *head)const node *p=head;int n=0; while(p!=NULL)n+;p=p-next; retrun n;课堂练习将一无序链表按升序排序冒泡排序if(p-data p-next-data)temp=p-data, p-data= p-next-data, p-next-data =temprhead3课堂练习将一无序链表按升序排序冒泡排序(-if(p-data pnext-data)temp=p-data, p-data= p-next-data

6、, p-next-data =tempp=p-next;课堂练习将一无序链表按升序排序冒泡排序if(p-data pnext-data)temp=p-data, p-data= p-next-data, p-next-data =tempp=p-next;Upheadhead-Tr课堂练习将一无序链表按升序排序冒泡排序rif(p-data pnext-data)temp=p-data, p-data= p-next-data, p-next-data =temp)p=p-next;head课堂练习void sort(node * head)nodewp=head;for(int i=0;ico un t(head)-1 ;i+)fo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论