数据结构线性表2答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题二
一、选择题
1.在一个长度为n的顺序表中删除第i个元素(0<i A.n-i B.n-i+1 C.n-i+1 D.i+1 2.从一个具有n个元素的线性表中查找其值等于x的结点时,在查找成功的情况下,需平均比较(C )个元素结点。 A.n/2 B.n C.(n-1)/2 D.(n +1)/2 3.对一个具有n个元素的线性表,建立其单链表的时间复杂度为( A)。 A.O(n) B.O(1) C.O(n2)D.O(long2n)4.线性表采用链式存储时,其地址( D )。 A.必须是连续的B.一定是不连续的 C.部分地址必须连续D.连续与否均可以 5.在一个具有n个结点的有序单链表中插人一个新的结点,使得链表仍然有序,该算法的时间复杂度是(D )。 A.O(long2n)B.O(l)C.O(n2)D.O(n)6.线性表是(A )。 A.一个有限序列,可以为空B.一个有限序列,不可以为空 C.一个无限序列,可以为空D.一个无限序列,不可以为空7.在一个长度为n的顺序表中,向第i个元素(0一1<n+1)之前捕人一个新元素时,需要向后移动( B )个元素。 A.n-i B.n-i+1 C.n-i-1 D.i+1 8.如果某链表中最常用的操作是取第i个结点及其前驱,则采用( D)存储方式最节省时间。 A.单链表B.双向链表C.单循环链表D.顺序表9.一个顺序存储线性表的第一个元素的存储地址是90,每个元素的长度是2,则第6个元素的存储地址是(B)。 A.98 B.100 C.102 D.106 10.下列排序方法中,某一趟结束后未必能选出一个元素放在其最终位置上的是( C)。 A.堆排序B.冒泡排序C.直接插人排序D.快速排序11.对线性表进行二分查找时,要求线性表必须(C)。 A.以顺序方法存储 B.以链接方法存储 C.以顺序方法存储,且结点接关键字有序排列 D.以链接方法存储,且结点接关键字有序排列 12.在顺序存储的线性表(a1……a n)中,删除任意一个结点所需移动结点的平均移动次数为( C ) A.n B.n/2 C.(n-1)/2 D.(n+l)/2 13.在线性表的下列存储结构中,读取元素花费的时间最少的是(D)。 A.单链表B.双链表C.循环链表D.顺序表14.若某链表中最常用的操作为在最后一个结点之后插入一个结点和删除最后一个结点,则采用(D)存储方式最节省时间。 A.双链表B.单链表C.单循环链表D.带头结点的双循环链表二、填空题 1.线性表(Linear List)是最简单、最常用的一种数据结构。线性表中的元素存在着___一对一的相互关系。 2.线性表中有且仅有一个开始结点,表中有且仅有一个终端结点,除开始结点外,其他每个元素有巨仅有一个直接前驱,除终端结点外,其他每个元素有且仅有一个直接后继3.线性表是n(n>=0)个数据元素的_有限序列。其中n为数据元素的个数,定义为线性表的长度。当n为零时的表称为空表。 4.所谓顺序表(Sequential LISt)是线性表的顺序存储结构,它是将线性表中的结点按其逻辑顺序依次存放在内存中一组连续的存储单元中,使线性表中相邻的结点存放在地址相邻的存储单元中。 5.单链表不要求逻辑上相邻的存储单元在物理上也一定要相邻。它是分配一些任意的存储单元来存储线性表中的数据元素,这些存储单元可以分散在内存中的任意的位置上,它们在物理上可以是一片连续的存储单元,也可以是不连续的。因此在表示线性表这种数据结构时,必须在存储线性表元素的同时,也存储线性表的逻辑关系。 6.线性表的链式存储结构的每一个结点(Node)需要包括两个部分:一部分用来存放元素的数据信息,称为结点的数据域;另一部分用来存放元素的指向直接后继元素的指针(即直接后继元素的地址信息),称为指针域或链域。 7.线性链表的逻辑关系是通过每个结点指针域中的指针来表示的。其逻辑顺序和物理存储顺序不再一致,而是一种非顺序存储结构,又称为非顺序映像。 8.如果将单链表最后一个结点的指针域改为存放链表中的头结点的地址值,这样就构成了循环链表 。 9.为了能够快速地查找到线性表元素的直接前驱,可在每一个元素的结点中再增加一个指向其前驱的指针域,这样就构成了双向链表。 10.双向链表某结点的指针P,它所指向结点的后继的前驱与前驱的后继都是p所指向的结点本身。 11.在单链表中,删除指针P所指结点的后继结点的语句是P->next=p->next->next _。 12.在双循环链表中,删除指针P所指结点的语句序列是P->prior->next=p->next及P->next->prior=P->prior _。 13.单链表是线性表的链接存储表示。 14.可以使用双链表表示树形结构。 15.向一个长度为n的向量的第i个元素(l≤i≤n+1)之前插人一个元素时,需向后移动n-i+1个元素。 16.删除一个长度为n的向量的第i个元素(l≤i≤n)时,需向前移动n-i 个元素。 17.在单链表中,在指针P所指结点的后面插人一个结点S的语句序列是S->next=P->next; P->next=S 18.在双循环链表中,在指针P所指结点前插人指针S所指的结点,需执行语句p->prior->next=S; s->prior=p->prior; s->next=p; p->prior=s; 19.取出广义表A=((x,(a,b,c,d))中原子c的函数是head(tail(tail((head(tail(head(A))))))。