第8章 结构体和共用体 C语言课件.ppt

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

8.7 用指针处理链表 第8章 动态链表结构需要动态地分配和释放存储空间,即在需要时开辟一个结点的存储空间,在删除某个结点时要释放其占用的存储空间。C语言编译系统提供了如下相关函数。 8.7.3 处理动态链表结点所需的函数 4. sizeof运算符 在处理动态链表时,以上前2个函数在内存动态申请长度为size的连续空间的大小,是用sizeof运算符计算出来的,其语法格式为: sizeof(变量、表达式或类型名) 功能:测试变量、表达式或类型名所占内存的字节数。 8.7 用指针处理链表 第8章 【例8.10】输出链表函数。 /* 依次输出以head开头的链表中所有结点中的数据的函数 */ void print(struct studinf *head) { struct studinf *p; printf(\nNow, These %d records are:\n, n); p=head; if(head) /* 如果头指针不空,说明有结点,则输出数据 */ do { printf(%ld%5.1f\n, p-num, p-score); p=p-next; }while(p!=NULL); } 8.7.5 输出单向链表 8.7 用指针处理链表 第8章 (1)删除任意i结点(操作如图8-9所示) 语句:i-1-next=i-next; 8.7.6 在单向链表中删除结点 删除步骤: ①二个指针p1,p2,p1寻找删除位置,p2指向刚查找过的结点 ②找到删除的结点,又分两种情况 a)删除第一个结点: head=p1-next; b)删除中间或最后一个结点:p2-next=p1-next; 8.7 用指针处理链表 第8章 8.7.6 在单向链表中删除结点 若删除最后一个结点,执行以上语句,同样适合。 8.7 用指针处理链表 第8章 (2)循环条件 查找数num,若num?p1-num 并且p-next?NULL,则往后查,p2=p1,p1=p1-next; 【例8.11】删除给定数据所在结点的函数。 struct studinf *del(struct studinf *head, long num) /* 从head链表中删除学号为num的结点,返回值为链表的首地址 */ { struct studinf *p1, *p2; if(!head){printf(\nlist null!\n); return(head);} /*链表为空,结束操作*/ p1=head; while(num!=p1-nump1-next!=NULL) /*p1所指非要找的结点,且后面还有结点*/ 8.7.6 在单向链表中删除结点 8.7 用指针处理链表 第8章 { p2=p1; p1=p1-next; } /*p2紧跟p1,p1下移一个结点*/ if(num= =p1-num) /*找到了要删除的结点*/ { if(p1= =head) head=p1-next; /*若p1指向的是头结点,则把第二个结点地址赋予head*/ else p2-next=p1-next; /*否则,下一个结点地址赋给前一个结点地址*/ free(p1); printf(delete:%ld\n, num); } else printf(%ld not been found!\n, num); return(head); /*返回删除后的链表头指针*/ } 8.7.6 在单向链表中删除结点 8.7 用指针处理链表 第8章 8.7.7 在链表中插入结点 插入新结点有以下二种情况: (1)原来链表是空的(新建立一个链表,如【例8.9】) (2)原来链表非空,但又分为三种情况,如图8-10所示三种插入位置: a.插入在第一个结点前; b.插入在任意二个结点之间; c.插入在最后; 8.7 用指针处理链表 第8章 8.7.7 在链表中插入结点 8.7 用指针处理链表 第8章 8.7.7 在链表中插入结点 8.7 用指针处理链表 第8章 8.7.7 在链表中插入结点 8.8 共用体 第8章 共用体类型变量定义的一般形式

文档评论(0)

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

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

版权声明书
用户编号:6153235235000003

1亿VIP精品文档

相关文档