网站大量收购独家精品文档,联系QQ:2885784924

第13讲链表 C语言课件教程教案.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第13讲链表 C语言课件教程教案.ppt

第13讲 链表 链表概述(1) 所谓链表是指若干个数据项(每个数据项称为一个“结点”)按一定的原则连接起来。每个数据项都包含有若干个数据和一个指向下一个数据项的指针,依靠这些指针将所有的数据项连接成一个链表。 链表结构定义用结构体来实现。 链表概述(2) struct student { char name[20]; long num; float score; struct student *next; }; struct student *head; 一个简单链表示例: 内存动态管理函数 动态分配存储 根据需要开辟或释放存储单元 相关函数 malloc函数 free函数 说明 应包含stdlib.h 链表的基本操作 链表的建立 从链尾到链头:新结点插入到链头 从链头到链尾:新结点插入到链尾 链表的插入操作 根据一定的条件,把新结点插入到指定位置 链表的删除操作 根据一定的条件,删除一个或多个结点 链表的输出操作 链表的查找操作 建立链表操作(从链尾到链头) head ... ④ head = p; ② p = malloc(sizeof (struct node));  p-data = a[i]; ① for(i=0; in; i++) ③ p-next = head; 建立链表操作 (从链头到链尾) ... ④ p-next = q; ② q = malloc(sizeof (struct node));  q-data = a[i]; ③ q-next = NULL; ⑤ p = q; ① for(i=0; in; i++) 链表的插入操作 ... ... ④ p-next = q; ② q = malloc(sizeof (struct node));  q-data = x; ① if(p满足插入条件) ③ q-next = p-next; 链表的删除操作 ... ... ③ p-next = q-next; ④ free(q); ② q = p-next; ① if(p-next满足删除条件) 链表的输出操作 ... ... ③ p = p-next; ① while(p) ② printf(%d, p-data); 链表的查找操作 ... ... ② p2=p1;p1=p1-next ; ① while(num!=p1-num p1!=NULL ) ③ printf (″find: %ld %5.2f\n″,num,p1-score); 两种链表的区别 带头结点的链表:p 第一个节点表示:p=head-next; 不带头结点的链表: 第一个节点表示:p=head; 2007年9月 1、以下程序的输出结果是_______________ # includestdio.h struct tt {int x; struct tt *y;} *p; struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a}; main( ) {int i; p=a; for (i=1;i=2;i++) {printf(“%d,”,p-x); p=p-y;} } 20,15, 2008年9月 1. 假定已建立以下链表结构,且指针p 和q 已指向如图所示的结点: head data next ↑p ↑q 则以下选项中可将 q 所指结点从链表中删除并释放该结点的语句组是( )。 A)(*p).next=(*q).next; free(p); B)p=q-next; free(q); C)p=q; free(q); D)p-next=q-next; free(q); c b a 2009年3月 以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据。请填空: #include stdio.h struct node{int data;struct node *next;}; typedef f struct node NODETYPE; main( {NODETYPE a,b,c,*h,*p; a.data=10;b.data=20;c.data=30;h=a; a,.next=b;b.next=c;c.next=‘\0’; p=h; while (p) {printf(“%d,”,p-data);

您可能关注的文档

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档