6.2.5链表 - 链表-教学课件_第1页
6.2.5链表 - 链表-教学课件_第2页
6.2.5链表 - 链表-教学课件_第3页
6.2.5链表 - 链表-教学课件_第4页
6.2.5链表 - 链表-教学课件_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

第六章

结构与链表第2节链表1程序解析2链表的概念3单向链表的常用操作1程序解析例

建立一个学生成绩信息(包括学号、姓名、成绩)的单向链表,学生记录按学号由小到大顺序排列,要求实现对成绩信息的插入、修改、删除和遍历操作。mainCreate_Stu_DocInsertDocDeleteDocPrint_Stu_DocInsertDoc1程序解析structstud_node{/*链表结点类型*/intnum;charname[20];intscore;structstud_node*next;};structstud_node*Create_Stu_Doc();/*新建链表*/structstud_node*InsertDoc(structstud_node*head,structstud_node*stud);/*插入*/structstud_node*DeleteDoc(structstud_node*head,intnum);/*删除*/voidPrint_Stu_Doc(structstud_node*head);/*遍历*/2链表的概念链表是一种常见而重要的动态存储分布的数据结构。它由若干个同一结构类型的“结点”依次串接而成。链表分单向链表和双向链表。头指针结点尾结点头结点2链表的概念通常使用结构来定义单向链表结点的数据类型:structstud_node{intnum;charname[20];intscore;

structstud_node*next;};结构的递归定义

2链表的概念与数组比较在用数组存放数据时,一般需要事先定义好固定长度的数组,在数组元素个数不确定时,可能会发生浪费内存空间的情况。链表是动态存储分布的数据结构。根据需要动态地开辟内存空间,可以比较自由方便地插入新元素(结点),故使用链表可以节省内存,操作效率高。2链表的概念动态分配相关函数void*malloc(unsignedsize)

功能:在内存的动态存贮区中分配一块长度为size的连续空间。返回值:指针,存放被分配内存的起始地址。若未申请到空间,则返回NULL(0)。例如:(int*)malloc(sizeof(int))(structstudent*)malloc(sizeof(structstudent))voidfree(void*ptr)功能:释放由malloc()申请的动态内存空间,ptr存放该空间的首地址。返回值:无。例如:free(p);3单向链表的常用操作1.链表的建立2.链表的遍历3.插入结点4.删除结点3单向链表的常用操作1.链表的建立3单向链表的常用操作1.链表的建立head=tail=NULL;scanf("%d%s%d",&num,name,&score);while(num!=0){

p=(structstud_node*)malloc(size);p->num=num;strcpy(p->name,name);p->score=score;

p->next=NULL;if(head==NULL)head=p;elsetail->next=p;tail=p;scanf("%d%s%d",&num,name,&score);}头部插入法:p->next=head;head=p;尾部插入3单向链表的常用操作2.链表的遍历for(ptr=head;ptr!=NULL;ptr=ptr->next)printf("%d\t%s\t%d\n",ptr->num,ptr->name,ptr->score);先连:s->next=ptr->next;后断:ptr->next=s;headptrs3单向链表的常用操作3.插入结点ptr2=ptr1->next;先接:ptr1->next

温馨提示

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

评论

0/150

提交评论