- 1、本文档共366页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上一页 下一页 返 回 (2)被删除结点若是第一个结点。这种情况只需使head指向第二个结点即可。即head=pb-next。 (3)被删结点若不是第一个结点,则需要查找要删除的结点,查找时从pb指向的第一个结点开始,检查该结点中的num值是否等于要删除的那个学号,如果相等,就找到是要删除的结点,如果不等,就将pb后移一个结点,直到找到要删除的结点或遇到链尾为止。在移动pb的同时移动pf,使pf记录pb的前驱结点,这种情况使被删结点的前一结点指向被删结点的后一结点即可。即pf-next=pb-next。 【程序代码】 TYPE * delete(TYPE * head,int num) { TYPE *pf,*pb; if(head==NULL) /*如为空表,输出提示信息*/ { printf(\nempty list!\n); return head;} pb=head; while (pb-num!=num pb-next!=NULL) /*当前结果不是要删除的结点,而且也不是最后一个结点时,继续循环*/ { pf=pb; pb=pb-next; } /*pf指向当前结点,pb指向下一结点*/ if(pb-num==num) { if(pb==head) head=pb-next; 上一页 下一页 返 回 else pf-next=pb-next; free(pb); printf(The node is deleted\n);} else printf(The node not been foud!\n); return head; } 4.链表的插入操作 【例9.10】 写一个函数,在链表中指定位置插入一个结点。 【编程思路】 在一个链表的指定位置插入结点,要求链表本身必须是已按某种规律排好序的。例如,在学生数据链表中,要求按学号顺序插入一个结点。设被插结点的指针为pi。可在四种不同情况下插入。 (1)原表是空表,只需使head指向被插结点。即: head=pi; pi-next=NULL (2)被插结点值最小,应插入第一结点之前。这种情况下使head指向被插结点,被插结点的指针域指向原来的第一结点则可。 即:pi-next=pb; /*pb为第一个结点的地址*/ head=pi; 上一页 下一页 返 回 (3)在其它位置插入,使插入位置的前一结点的指针域指向被插结点,使被插结点的指针域指向插入位置的后一结点。 即:pi-next=pb; pf-next=pi; (4)在表末插入,这种情况下使原表末结点指针域指向被插结点,被插结点指针域置为NULL。 即:pb-next=pi; pi-next=NULL; 【程序代码】 TYPE * insert(TYPE * head,TYPE *pi) { TYPE *pf,*pb; pb=head; if(head==NULL) /*空表插入*/ { head=pi;pi-next=NULL; } else { while((pi-numpb-num)(pb-next!=NULL)) {pf=pb; pb=pb-next; }/*找插入位置*/ 上一页 下一页 返 回 if(pi-num=pb-num) { if(head==pb) head=pi; /*在第一结点之前插入*/ else pf-next=pi;/*在其它位置插入*/ pi-next=pb; } else { pb-next=pi; pi-next=NULL; } /*在表末插入*/ } return head; } 9.3 共用体 9.3.1 共用体类型及变量的定义 上一页 下一页 返 回 1.共用体类型的定义 定义形式: union 共用体名 { 类型标识符1 成员名1; 类型标识符2 成员名2; … }; 例如: union data { int i; char ch; float f; }; 上一页 下一页 返 回 2.共用体变量的定义 与定义结构体类型一样,定义共用体变量也有三种形式: (1)先定义共用体类型,再定义共用体变量。 union data { int i; char ch; float f;
您可能关注的文档
- 教学课件 ASP.NET程序设计--张海春.ppt
- 教学课件 Authorware 7多媒体创意设计案例实践教程(第四版)--刘文东.ppt
- 教学课件 CAXA电子图板2011项目化教学实用教程(吴勤保).ppt
- 教学课件 CorelDRAW X3项目教程(糜淑娥).ppt
- 教学课件 C程序设计与训练第二版 李秉章.ppt
- 教学课件 C语言程序设计案例教程-王明福.ppt
- 教学课件 C语言程序设计案例教程--熊锡义.ppt
- 教学课件 C语言程序设计--彭正文.ppt
- 教学课件 C语言程序设计--徐永青.ppt
- 教学课件 办公设备操作与管理3版(主编蔡超)(总主编孙汝建).ppt
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)