线性表
2019-03-02 本文已影响0人
牛倩贱
线性表:
线性表:零个或多个数据元素的有限序列。
在复杂的线性表中,一个数据元素可以由若干个数据项组成。
线性表顺序存储结构的优缺点:
优点:无须为表示表中元素之间的逻辑关系而增加额外的存储空间;可以快速的读取表中任一位置的元素。
缺点:插入和删除操作需要移动大量的元素;当线性表长度变化较大时难以确定存储空间的容量;造成存储空间的碎片。
链式结构中,除了要存数据元素信息外,还要存储他的后继元素的存储地址。
头指针是链表的必要元素,头结点不一定是链表的必要元素。
注意:归并
void MergeList(List La, List Lb, List &,Lc) {
InitList(Lc);
i=j=1, k=0,
La_len=ListLength(La); Lb_len=ListLength(Lb);
while ((i<=La_len)&&(j<=Lb_len)){
GetElem(La,i,ai);GetElem(Lb,j,bj);
if(ai<=bj){ListInsert(Lc,++k,ai),++i}
else{ListInsert(Lc,++k,bj),++j}
while(i<=La_len){
GetElem(La,i,ai);LIstInsert(Lc,++k,ai)
}
while(j<=Lb_len){
GetElem(Lb,j,bj);LIstInsert(Lc,++k,bj)
}
例题:已知顺序表La和Lb中的数据元素按值非递减有序排列,现要将La和Lb归并为一个新表Lc,且Lc中的元素仍按指非递减有序排列。
La=(3,5,8,9);Lb=(2,6,8,10,11,15,20)
Lc=(2,3,5,6,8,8,9,10,11,15,20)