- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构(C语言版)-21世纪高等院校规划教材
21世纪高等院校规划教材数据结构(C语言版) 第1章 绪论 (4) 按值查找Locate(L,x) 在线性表L中查找值为x的数据元素,若查找成功则返回第一个值为x的元素的序号或地址; 否则,在L中未找到值为x的数据元素,返回一特殊值(例如0),表示查找失败。 (5) 插入元素Inselem (L,i,x) 在线性表L的第 i 个位置上插入一个值为 x 的新元素,这样使原序号为 i , i+1, ..., n 的数据元素的序号变为 i+1,i+2, ..., n+1,要求1≤i≤Getlen(L)+1,插入后原表长增1。 (6) 删除元素Delelem(L,i) 在线性表L中删除序号为i的数据元素,删除后使序号为 i+1, i+2,..., n 的元素变为序号i, i+1,...,n-1,要求1≤i≤Getlen(L),删除后表长减1。 2.2 线性表的顺序结构及运算实现 3.按序号取元素Getelem(L,i)的实现 按前面的约定,序号为i的元素存储在数组下标为i-1的数组元素中,所以可直接从该数组元素中取得值。i的有效值应大于等于1和小于等于线性表的实际长度。 ElemType Getelem(sqLlist *L,int i) { if(i1 || iL-length) { printf(“error”); exit(1); } return L-data[i-1]; } 4.查找运算locate(L,x)的实现 要 确定值为x的元素在L表中的位置,需要依次比较各元素。当查询到第一个满足条件的数据元素时,返回其序号,否则返回0,表示查找失败。 查找操作的具体实现算法如下: int Locate(sqList *L,ElemType x) { int i; i=0; while(iL-length L-data[i]!=x) i++; if(iL-length) return i ; else return 0; } (a1,a2,…,ai-1,x,ai,ai+1,…,an ), i 的取值范围为1≤i≤n+1 。下图表示一个顺序表中的数组在进行插入运算前后,数据元素在数组中的下标变化。 void Inselem(sqList *L,int i,Elemtype x) { if (i1 || iL-length+1) { printf(“Error!”) ; //插入位置出错 exit(1); } if(L-length==MaxLen) { printf(“overflow!”) ; //表已满 exit(1); } for(j=L-length;j=i;j--) L-data[j+1]=L-data[j]; //数据元素后移 L-data[i]=x; //插入x L-length++; //表长度加1 } 由此可以看出,在线性表上做插入操作需要移动表中一半的数据元素,当n较大时,算法的效率是比较低的,所以在线性表上进行插入操作的时间复杂度为O(n)。 6.顺序表的删除运算Delelem(L,i)的实现 顺序表的删除运算是指将表中第 i 个元素从线性表中去掉,原表长为 n 的线性表(a1,a2,… ,ai-1,ai,ai+1,…,an) 。进行删除以后的线性表表长变为 n-1的表 (a1,a2,… ,ai-1,ai+1,… ,an), i 的取值范围为:1≤i≤n 。 图2-5表示一个顺序表的数组在进行删除运算前后,其数据元素在数组中的下标变化。 图2-5 线性表中的删除运算示意图 在线性表上完成上述运算通过以下两个操作来实现: (1) 线性表中第i个至第n个元素(共n-i+1个元素)依次向前移动一个位置。将所删除的元素ai覆盖掉,从而保证逻辑上相邻的元素物理位置也相邻。 (2)修改线性表长度,使其减1。 线性表的删除算法如下: void Delelem(sqList *L,int i) //删除线性表中第i个位置上的元素 { if(i1 || iL-length) //检查空表及删除位置的合法性 { printf ("不存在第i个元素");exit(0); } f
您可能关注的文档
- 教育心理学(岗前培训2011新) (NXPowerLite).ppt
- 教育心理学(岗前培训2011新)-课件.ppt
- 教育心理学(岗前培训2011新)30154.ppt
- 教育心理学 第五章学习的基本问题 -2.ppt
- 教育心理学(岗前培训2018新)..ppt
- 教育心理学(岗前培训2017新)..ppt
- 教育心理学(岗前培训2011新)82817.ppt
- 教育心理学-注意.ppt
- 教育心理学2009(讲).ppt
- 教育心理学—第三章 儿童期到青年期的发展【课件】.ppt
- 整合型计画团队形成计划书之撰写洪久贤台湾师大人类发展与家庭系教授.ppt
- 整体可视化裸鼠颈部淋巴结肿大,原位、颈部淋巴结和肺部的荧光肿瘤.ppt
- 整合類神經網路與廻歸分析於企業危機診斷之研究 - 德霖技術學院財務 bb.ppt
- 数显压力表项目细分市场调查与上市募投可研报告如何编制(市场容量数据 甲级资质).ppt
- 整形专家介绍隆鼻手术.ppt
- 整形美容之注射隆鼻 不动刀子也可拥有美鼻.ppt
- 数控机床常见故障诊断及排除方法 1.ppt
- 整顿与温习数学思虑p91-93.ppt
- 文学概论主讲:阎嘉教授四川大学文学与新闻学院【推荐-PPT】.ppt
- 文明产生 最早的人类约360万年前 东非大裂谷.ppt
原创力文档


文档评论(0)