一.单选
1.线性表采用链表存储时 ,结点和结点内部的存储空间可以是不连续的。
错。线性表采用链表存储时,不要求结点所占空间连续,但一个结点内部空间必须是连续的。
而“结点和结点内部”表示的是交集关系。
2.下面结构类型可以用来构造链表的是:B
A.struct aa{ int a ; int *b };
B.struct bb{ int a ; bb *b };
C.struct cc{ int *a ; cc b };
D.struct dd{ int *a ; aa b };
想要构造链表需要一个指向此结构体的指针。
3.利用二叉链表存储树,则根的右指针是:C
A.指向最左孩子
B.指向最右孩子
C.空
D.非空
注意题中是树的存储结构,树的存储结构是左孩子(在左边的都叫左孩子),右兄弟,树的根节点没有兄弟。
而对于二叉树而言,是左孩子,右孩子。
4若某线性表最常用的操作是在最后一个元素之后插入和删除进入表中的最后一个元素,则采用(A)存储方式最节省时间和存储空间
若某线性表最常用的草最是最后一个元素插入和删除第一个元素,则采用(B)存储方式最节省时间。
A双向链表
B仅有尾指针的单循环链表
5.某单链表有5个元素,设单链表的节点结构为(data,next),5个元素的data依次为(1,2,3,4,5),已知指针q指向节点3,指针p指向节点4,
那么下面操作能将链表变为data依次为(1,2,3,5)的是:F
A.q=p->next;
B.p=q->next;
C.p->next=q->next;
D.q->next=p->next;delete q;
E.p->data=p->next->data; p->next=p->next->next;delete p->next
F.temp=p->next;p->next=temp->next;p->data=temp->data;delete temp; temp=NULL;