- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(3) 算法分析 算法 Get 的基本操作:比较 j 和 i 且后移指针。while 循环体中的语句执行次数与被查数据元素在线性表中的位置有关。假设线性表长为 n,如果 1≤i≤n ,则 while 循环体中语句的执行次数为 i,否则执行次数为 n ,因此算法 Get 的时间复杂度为 O(n)。 * Int ListLength(LinkList L) /* L 是带头结点单链表的头指针,求链表长度*/ { Node *p; p=L-next; j = 0; /* 初始化,p 指向头结点,j 为计数器,初始时为0*/ while ( p!=NULL) { p = p-next; j++; } return j ; /*j为求得的单链表长度*/ } /*ListLength*/ * 4.求单链表长度操作 (1) 算法思想 假设要在带头结点的单链表的两个数据元素 ai-1 和 ai 之间插入一个数据元素 e。 查找第 i-1 个结点,检查有关参数的合理性; 查找第i-1个结点并由指针pre指示, 生成一个新结点; 使新结点数据域的值为 e; 将新结点插入到单链表中; 修改第 i-1 个结点的指针域。 * 5.单链表的插入元素算法 Int InsList( LinkList L, int i, ElemType e ) { /*在带头结点单链表 L 中第 i 个位置前插入 e。1≤i ≤表长+1。 Node *pre,*s; int k; /* k 为计数器,初始为 0*/ if (i1) return ERROR; Pre=L; k=0; while ( pre!=Null ki-1 ) { pre = pre-next; k++; } /* 顺指针向后查找,直到 pre 指向第 i–1 个元素或 pre为空*/ if ( ! pre || k i-1 ) /* i<1 或>表长+1*/ { printf(“插入位置不合理!”); return ERROR; } s = ( Node* ) malloc ( sizeof ( LNode ) ); /* 生成新结点*/ * (2) 算法编写 * s-data = e; /*将 e 放入新结点数据域*/ s-next = pre-next; /* 将新结点插入表 L 中*/ p-next = s; /* 修改第 i-1 个结点指针* return OK; }/*InsList*/ (3) 算法分析 算法InsList的基本操作是:在插入之前,需要找到第 i-1 个结点,从算法 Get 的讨论中我们可以得知,算法InsList的时间复杂度为 O(n)。 (1) 算法思想 假设要在线性表中删除数据元素 ai 。 寻找第 i-1 个结点,并由pre指示, 指示检查有关参数的合理性; 用一个指针r指向被删除结点; 删除第 i 个结点,即修改第 i-1 个结点的指针; 释放第 i 个结点。 * 6.单链表的删除元素算法 Int DelList( LinkList L, int i, ElemType *e ) { /* 在带头结点的单链表 L 中,删除第 i 个元素,并由 e 返回其值。*/ /* 1≤i ≤表长。*/ Node *pre, *r; int k; pre = L; k = 0; *初始化,pre 指向头结点, k 为计数器,初始为0*/ while ( pre-next!=NULL ki-1 ) { pre = pre-next; k++; } /* 顺指针向后查找,直到 pre 指向第 i–1 个元素或 pre-next 为空 if ( ! pre-next ) { printf(“删除位置不合理”) ;return ERROR;} /* 删除位置不合理*/ r= pre-next; /* 用r 指向第 i 个结点*/ pre-next = r-next
您可能关注的文档
- 燕山大学经济管理学院会计学原理课件第八章 会计报表.ppt
- 燕山大学经济管理学院会计学原理课件第二章 账户与复式记账.ppt
- 燕山大学经济管理学院会计学原理课件第九章 会计循环与账务处理程序.ppt
- 燕山大学经济管理学院会计学原理课件第六章 会计账簿.ppt
- 燕山大学经济管理学院会计学原理课件第七章 财产清查.ppt
- 燕山大学经济管理学院会计学原理课件第三章 工业企业基本经济业务的核算.ppt
- 燕山大学经济管理学院会计学原理课件第四章 账户分类.ppt
- 燕山大学经济管理学院会计学原理课件第五章 会计凭证.ppt
- 燕山大学经济管理学院会计学原理课件第一章 绪论.ppt
- 燕山大学数字电子技术基础课件第八章 可编程逻辑器件.ppt
- 云南师范大学信息学院数据结构课件第3章 栈和队列(2).ppt
- 云南师范大学信息学院数据结构课件第4章 串.ppt
- 云南师范大学信息学院数据结构课件第5章 数组和广义.ppt
- 云南师范大学信息学院数据结构课件第8章 查找.ppt
- 云南师范大学信息学院数据结构课件第9章 排序.ppt
- 云南中医学院正常人体解剖学课件第九章第六节 自主神经系统.ppt
- 云南中医学院正常人体解剖学课件第九章第七节 脑和脊髓被膜、脑室和脑脊液.ppt
- 云南中医学院正常人体解剖学课件第九章第三节 脑干和脑神经.ppt
- 云南中医学院正常人体解剖学课件第九章第四节 小脑、间脑和端脑.ppt
- 云南中医学院正常人体解剖学课件第九章第一节  神经系统概述.ppt
最近下载
- 降低留置胃管非计划拔管发生率.ppt VIP
- HIKVISION海康威视U2系列 1080P专业级直播摄像机DS-U22_20211028.pdf
- 电化学储能站安全培训.pptx VIP
- 小学道德与法治_《学会识别广告》教学课件设计.ppt VIP
- 托幼机构卫生保健人员考试题库【附答案】.pdf VIP
- 三菱海尔商用空调.ppt VIP
- 2024-2030年中国桑蚕养殖行业市场发展分析及竞争格局与投资前景研究报告.docx
- 二元思辨:摆脱焦虑与焦虑是创造力的根基-备战2024年高考语文作文写作终极指导.pdf VIP
- 四年级上道德与法治《学会识别广告》教学设计.pdf VIP
- 2024融合大语言模型DeepSeek技术新人教版语文七年级上册《第四单元》大单元整体教学设计[2022课标].pdf
文档评论(0)