- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构——使用C语言版(朱战立)线性表.ppt
* * * * * * * * * * * * * * * * * * * * void LinListInsert(SLNode *head, DataType x) { SLNode *curr, *pre, *q; curr = head-next; pre = head; while(curr != NULL curr-data = x) { pre = curr; curr = curr-next; } q = (SLNode *)malloc(sizeof(SLNode)); q-data = x; q-next = pre-next; pre-next = q; } 算法设计说明: (1)在循环定位插入位置时,循环条件必须首先是curr != NULL,然后是curr-data = x。如果次序颠倒,则当curr为空(即等于链表结束标记NULL)时,将因为curr-data不存在而出错;次序不颠倒时,当curr等于NULL时将退出循环,不会进行后边条件curr-data = x的比较。 (2)当比较到最后一个结点仍有data小于等于x时,此时有pre指向最后一个结点,curr等于NULL,则上述算法把新结点插入到了单链表尾作为了单链表新的表尾结点。 例2-7 设head为单链表的头指针,并设单链表带有头结点,编写算法将单链表中的数据元素按照数据元素的值递增有序的顺序进行就地排序。 算法思想:在例2-6算法的基础上,再增加一重循环即可实现全部数据元素的排序。由于此时的排序过程没有申请新的结点空间,所以这样的排序算法满足就地排序,即不增加新的内存空间的设计要求。 具体实现过程是:把头指针head所指单链表置空(即初始时head所指单链表仅包含一个头结点),把去掉头结点的原单链表(设由头指针p指示)中的数据元素逐个重新插入head所指单链表中。每次插入从head所指单链表的第一个数据元素结点开始,逐个比较head所指单链表每个结点的data域值和p所指单链表的当前第一个数据元素结点的data域值,当前者小于或等于后者时,用head所指单链表的下一个结点进行比较;否则就找到了插入结点的合适位置,从p所指单链表中取下当前第一个数据元素结点插入到head所指单链表的合适位置。这样的过程一直进行到p所指单链表为空时结束。 void LinListSort(SLNode *head) { SLNode *curr, *pre, *p, *q; p = head-next; head-next = NULL; while(p != NULL) { curr = head-next; pre = head; while(curr != NULL curr-data = p-data) { pre = curr; curr = curr-next; } q = p; p = p-next; q-next = pre-next; pre-next = q; } } 练习:编写算法实现带头结点的单链表的逆置。阅读下列程序,查找程序中的问题。 void converse(SLNode *head) { SLNode *p,*q; p=head-next; head-next=NULL; while (p!=NULL) { q=p; p=p-next; head-next=p-next; } } 正确的程序: void converse(SLNode *head) { SLNode *p,*q; p=head-next; head-next=NULL; while (p!=NULL) { q=p; p=p-next; q-next= head-next; head-next=q; } } 1) 习题2-1,2-2 ,2-3 习题2-4,2-10,2-14 2) 习题2-16 3) 习题2-5,2-6,2-15 4)习题2-20,2-21 5)习题2-18,2-22 作业 * * * *
您可能关注的文档
- 小学生看图作文图片及.ppt
- 小学生课堂行为习惯.ppt
- 小学科学辅导-长颈鹿.ppt
- 小学英语人教版 (精通)三年级起点五年级下册教学PPT Lesson 5.ppt
- 小学血吸虫病预防课件.ppt
- 小学语文一年级上iuvyw课件(教学用).ppt
- 小学语文一年级上册02汉语拼音yiwuyu课件.ppt
- 小学语文三年级上册荷花.ppt
- 小学语文六年级上册第六单元综合性学习ppt.ppt
- 小石潭记课件PPT.ppt
- 湖北省荆门市名校2024-2025学年初三第一次模拟考试(生物试题理)试卷含解析.doc
- 2025年山东省无棣县鲁北高新技术开发区实验学校初三下5月第三次月考生物试题含解析.doc
- 2025年江苏省苏州市常熟一中初三下摸底联考生物试题含解析.doc
- 2025年广西崇左市扶绥县初三3月阶段测试生物试题含解析.doc
- 山东省济宁市名校2025年初三生物试题第一次模拟考试试题含解析.doc
- 江苏省南通市海安市十校联考2024-2025学年初三下学期(开学)考试生物试题试卷含解析.doc
- 广西钦州四中学2024-2025学年初三下学期第一周综合自测生物试题含解析.doc
- 福建省泉州市鲤城区北片区重点中学2024-2025学年初三第一次模拟(适应性测试)考试生物试题试卷含解析.doc
- 山东省滨州市邹平县重点中学2024-2025学年初三四模生物试题试卷含解析.doc
- 江苏省无锡市新区重点名校2025年初三综合练习(三模)生物试题含解析.doc
文档评论(0)