- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.1 线性表的逻辑结构 2.1.1 线性表的定义: 一个线性表是n≥0个同类型的数据元素a1,a2,…,an组成的有限序列。记为( a1,a2,…, ai-1,ai,ai+1,…,an) 。 其中:n称为线性表的长度。 n=0称为空表,表示无数据元素。 n0时,则除a1和an外,有且仅有一个直接前趋和一个直接后继数据元素,ai(1≤i≤n)为线性表的第i个数据元素,它在数据元素ai-1之后,在ai+1之前。a1为线性表的第一个数据元素,而an是线性表的最后一个数据元素。 数据元素的含义广泛,在不同的具体情况下,可以有不同的含义。 矩阵也是一个线性表,但它是一个比较复杂的线性表。在矩阵中,我们可以把每行看成是一个数据元素,也可以把每列看成是一个数据元素,而其中的每一个数据元素又是一个线性表。 1. 顺序表的插入操作 2.顺序表的删除操作 在长度为num(0≤num≤MAXNUM)的顺序表List,删除第i(1≤i≤num)个数据元素,需将第i+1至第num个数据元素的存储位置(num-i)依次前移,并使顺序表的长度减1,返回TRUE值,若i<1或i>num,则无法删除,返回FALSE值,如图2-6所示。 其算法如下: 【算法2.2 顺序表的删除】 int Delete(Elemtype List[],int *num,int i) {/*在线性表List[]中,*num为表的长度,删除第i个元素,线性表的元素减1,若成功,则返回TRUE;否则返回FALSE。*/ int j; if(i1||i*num) {printf(“Error!”); return FALSE; /*删除位置出错!*/ } for(j=i;j=*num-1;j++) List[j-1]=List[j]; /*数据元素前移*/ (*num)--; /*长度减1*/ return TRUE; } 其算法改为如下: 【算法2.2.2 顺序表的删除】 struct L_list Delete(struct L_list L,int i) {/*在线性表L中删除第i个元素,线性表的元素减1,若成功,则返回TRUE;否则返回FALSE。*/ int j; if(i1||iL.length) {printf(“Error!”); return L; /*删除位置出错!*/ } for(j=i;j=L.length-1;j++) L.List[j-1]=L.List[j]; /*数据元素前移*/ L.length--; /*长度减1*/ return L; } 算法如下: void merge(Elemtype La[],Elemtype Lb[],Elemtype *Lc) { int i,j,k; int La_length,Lb_length; i=j=0;k=0; La_length=Length(La);Lb_length=Length(Lb); /*取表La,Lb的长度*/ Initiate(Lc); /*初始化表Lc*/ While (iLa_lengthjLb_length) { a=get(La,i);b=get(Lb,j); if(ab) {insert(Lc,++k,a);++i;} else {insert(Lc,++k,b);++j;} } /*将La和Lb的元素插入到Lc中*/ while (iLa_length) { a=get(La,i);insert(Lc,++k,a);i++} while (jlb_length) { b=get(Lb,j);insert(Lc,++k,b);j++ } } 如: void merge(int La[],int m,int Lb[],int n,int *Lc) { int i,j,k; int La_length,Lb_length; i=j=0;k=0; La_length=m;Lb_length=n; /*取表La,Lb的长度*/ Lc=(int*)malloc(sizeof(int)); /*初始化表Lc*/ While (iLa_lengthjLb_length) {if(La[i]Lb[j]) {Lc[k]=La[i];k++;i++;} else {Lc[k]=
您可能关注的文档
- 数据库系统概论2.ppt
- 数据库设计报告模板.doc
- 数据库课程设计.doc
- 数据库课程设计.docx
- 数据库课程设计报告(学号姓名).doc
- 数据库课程设计报告+源代码.doc
- 数据库课程设计报告--食堂管理系统.doc
- 数据库课程设计报告-教学管理系统(+java实现).doc
- 数据库课程设计报告-校运动会管理系统.doc
- 数据库课程设计报告.doc
- 中国行业标准 DB/T 100-2024区域性地震安全性评价.pdf
- 《GM/T 0138-2024C-V2X车联网证书策略与认证业务声明框架》.pdf
- GM/T 0138-2024C-V2X车联网证书策略与认证业务声明框架.pdf
- DB/T 100-2024区域性地震安全性评价.pdf
- 中国行业标准 GM/T 0138-2024C-V2X车联网证书策略与认证业务声明框架.pdf
- 校园周边书店阅读氛围对初中生阅读素养提升的影响研究教学研究课题报告.docx
- 初中校园餐饮卫生监管与食品安全教育创新模式研究教学研究课题报告.docx
- 《文化遗产保护与旅游开发平衡机制的法律法规完善研究》教学研究课题报告.docx
- 《农作物病虫害生物防治技术的经济效益与社会影响分析》教学研究课题报告.docx
- 1 剖宫产术后子宫瘢痕憩室治疗中的并发症预防与护理措施教学研究课题报告.docx
文档评论(0)