资源描述:
《【数据结构】第2章 线性表new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二章线性表(I)西安电子科技大学·理学院hjTang@xidian.edu.cn线性表的特点¢存在唯一的一个被称做“第一个”的数据元素¢存在唯一的一个被称做“最后一个”的数据元素¢除第一个元素外,集合的每个数据元素均只有一个前驱¢除最后一个元素外,集合的每个数据元素只有一个后继012N-2N-110N-2N-12DataStructureChapter2:LinearTable2常见的线性表¢简单线性表¢('A','B','C',…,'X','Y','Z')¢(6,17,28,50,92,188,32,-12)¢复杂线性表001高等数学樊映川S01…¢记录002理论力学罗远祥L01…¢数据项
2、003高等数学华罗庚S01…004线性代数栾汝书S02…¢文件……………DataStructureChapter2:LinearTable3线性表特点¢线性表元素各式各样¢字符、数据、复合数据¢同一个线性表内的元素具有相同的特性¢字符——都是字符¢复合数据——都是复合数据,且格式一致¢相邻的元素存在序偶关系¢DataStructureChapter2:LinearTable4线性表的抽象数据类型定义ADTList{数据对象:D={a
3、a∈ElemSet,i=1,2,…,n,n≥0}ii数据关系:R1={
4、a,a∈D,i=1,2,…,n-1}
5、i-1ii-1i基本操作:InitList(*L);//操作结果:构造一个空的线性表LDestroyList(*L);//销毁一个线性表ClearList(*L);//将线性表置为空表ListEmpty(*L);//判断线性表是否为空表GetElem(*L,i,*e);//初始条件:线性表已经L存在,0≤i6、e将元素e与线性表L中的每个元素//进行比较,返回L中第一个与e匹配的元素位置PriorElem(*L,cur_e,*pre_e);//获得cur_e元素的直接前驱NextElem(*L,cur_e,*next_e);//获得cur_e元素的直接后继ListInsert(*L,i,e);//将元素e插入到线性表的第i个位置ListDelete(*L,i,*e);//删除线性表第i个位置的元素值,并将其值保存至e中ListTraverse(*L,(*visit)());//依次对线性表L的每个元素调用visit函数操作,直至visit//函数操作失败}ADTList;DataStructureC
7、hapter2:LinearTable6集合合并¢用两个线性表La和Lb分别表示两个集合A和B,现要求一个新的集合A=A∪B。La1684527Lb15276DataStructureChapter2:LinearTable7intElemEqual(ElemTypeea,ElemTypeeb){if(ea==eb)return0;elseif(ea>eb)return1;elsereturn-1;}voidunion_list(List*La,List*Lb){intla_len=ListLength(La);//Mintlb_len=ListLength(Lb);//Nfor(inti=0
8、;i9、voidMergelist(List*La,List*Lb,List*Lc){intla_len=ListLength(La);intlb_len=ListLength(Lb);InitList(Lc);inti=0,j=0,k=0;ElemTypeea,eb;while(i