第二章 线性表
2、1 填空题
(1)一半 插入或删除得位置
(2)静态 动态
(3)一定 不一定
(4)头指针 头结点得 next 前一个元素得 next
2、2 选择题
(1)A (2) DA GKHDA EL IAF IFA(IDA)
辭氫鈿库谪妈蘚。
(3)D (4)D (5) D
2、3
头指针:在带头结点得链表中,头指针存储头结点得地址;在不带头结点得链表中,头指
针存放第一个元素结点得地址;
鰱邹剐賤緙雜靈。
头结点:为了操作方便,在第一个元素结点前申请一个结点,其指针域存放第一个元素结
点得地址,数据域可以什么都不放;
闡儐荣幟鉿馅貓。
首元素结点:第一个元素得结点。
2、4 已知顺序表 L 递增有序,写一算法,将 X 插入到线性表得适当位置上,以保持线性表
得有序性。
void InserList(SeqList *L,ElemType x)
{
int i=L->last;
if(L->last>=MAXSIZE-1) return FALSE; //顺序表已满
while(i>=0 && L->elem[i]>x)
{
L->elem[i+1]=L->elem[i];
i--;
}
L->elem[i+1]=x;
L->last++;
}
2、5 删除顺序表中从 i 开始得 k 个元素
int DelList(SeqList *L,int i,int k)
{
int j,l;
皚轲贱騎裣孫滄。
if(k<=0) return 1; /*No Need to Delete*/
if(i+k-2>=L->last) L->last=L->last-k; /*modify the length*/
擬娆虧谪橼缮鲛。
for(j=i-1,l=i+k-1;l<L->last;j++,l++)
L->elem[j]=L->elem[l];
L->last=L->last-k;
return 1;
}
2、6 已知长度为 n 得线性表 A 采用顺序存储结构,请写一时间复杂度为 O(n)、空间复杂度
为 O(1)得算法,删除线性表中所有值为 item 得数据元素。
痒藺寵躊蔷鹼过。
[算法 1]