第二章线性表(答案).doc
文本预览下载声明
线性表
一、选择题 1.一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( ) (A)110 (B)108(C)100 (D)1202. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动( )个元素。 (A)64(B)63 (C)63.5 (D)73.线性表采用链式存储结构时,其地址( )。 (A) 必须是连续的 (B) 部分地址必须是连续的 (C) 一定是不连续的 (D) 连续与否均可以 4. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行( ) (A)s-next=p;p-next=s; (B) s-next=p-next;p-next=s;(C)s-next=p-next;p=s; (D)p-next=s;s-next=p;5.在一个单链表中,若删除p所指结点的后续结点,则执行( ) (A)p-next=p-next-next; (B)p=p-next; p-next=p-next-next;(C)p-next=p-next; (D)p =p-next-next;6.下列有关线性表的叙述中,正确的是( ) (A)线性表中的元素之间隔是线性关系 (B)线性表中至少有一个元素 (C)线性表中任何一个元素有且仅有一个直接前趋 (D)线性表中任何一个元素有且仅有一个直接后继 7.线性表是具有n个( )的有限序列(n≠0)(A)表元素 (B)字符 (C)数据元素 (D)数据项 二、判断题 1.线性表的链接存储,表中元素的逻辑顺序与物理顺序一定相同。( ) 2.如果没有提供指针类型的语言,就无法构造链式结构。() 3.线性结构的特点是只有一个结点没有前驱,只有一个结点没有后继,其余的结点只有一个前驱和后继。( ) 4.语句p=p-next完成了指针赋值并使p指针得到了p指针所指后继结点的数据域值。( ) 5.要想删除p指针的后继结点,我们应该执行q=p-next ; p-next=q-next; free(q)。( ) 三、填空题 1.已知P为单链表中的非首尾结点,在P结点后插入S结点的语句为:___ s-next=p-next; p-next=s;____________________ 。2.顺序表中逻辑上相邻的元素物理位置(一定)相邻, 单链表中逻辑上相邻的元素物理位置___不一定______相邻。 3.线性表L=(a1,a2,...,an)采用顺序存储,假定在不同的n+1个位置上插入的概率相同,则插入一个新元素平均需要移动的元素个数是_______ n/2__________4.在非空双向循环链表中,在结点q的前面插入结点p的过程如下: p-prior=q-prior;q-prior-next=p;p-next=q;____ q-prior=p;__________________; 5.已知L是无表头结点的单链表,是从下列提供的答案中选择合适的语句序列,分别实现: (1)表插入s结点的语句序列是________6) 3)(2) 表尾插入 s结点的语句序列是_______ 2) 9)1) 7)_____
p-next=s;
p=L;
L=s;
p-next=s-next;
s-next=p-next;
s-next=L;
s-next=null;
while(p-next!= Q)? p=p-next;
while(p-next!=null) p=p-next;
1、int aver(LinkList L){p=L;while(p){p=p-next; i++;sum=sum+p-data;}aver=sum/i;return aver;}
2.已知带有头结点的循环链表中头指针为head,试写出删除并释放数据域值为x的所有结点的函数。
2、void del(LinkList L,int x) /* 删除数据域为x的结点*/{p=L;q=L-next;while(q!=L){if(q-data==x){p-next=q-next;s=q;q=q-next;free(s);} else{p=q;q=q-next;}}}3.线性表中的元素值按递增有序排列,针对循环链表存储方式,编写函数删除线性表中值介于a与b(a≤b)之间的元素。
void del(LinkList L,elemtype a,elemtype b){p= L;q=p-next; /* 假设循环链表带有头结点 */while(q!=L q-dataa){p=q;q=q-next;}while(q!=L q-
显示全部