数据结构(线性表)练习题与答案2

  • 格式:docx
  • 大小:17.73 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、与单链表相比,双链表的优点之一是()。

A.插入、删除操作更简单

B.可以进行随机访问

C.可以省略表头指针或表尾指针

D.访问前后相邻节点更方便

正确答案:D

解析:在双链表中可以访问任一节点的前后相邻节点,而单链表中只能访问任一节点的下一个节点。

2、带头节点的双链表L为空表时应满足()。

A.L==NULL

B.L->prior==L->next

C.L->prior==NULL

D.L->next==NULL

正确答案:D

3、在长度为n(n≥1)的双链表中插入一个节点(非尾节点)要修改()个指针域。

A.1

B.2

C.3

D.4

正确答案:D

解析:需要修改插入节点的prior、next域,前驱节点的next域和后继节点的prior域。

4、对于长度为n(n≥1)的双链表L,在p所指节点之前插入一个新节点的算法的时间复杂度为()。

A. O(1)

B. O(n)

C. O(n2)

D. O(nlog2n)

正确答案:A

解析:设新节点指针为q,操作是:p->prior->next=p; q-

>prior=p->prior; p->prior=q; q->next=p;

5、在长度为n(n≥1)的双链表中删除一个节点(非尾节点)要修改()个指针域。

A.1

B.2

C.3

D.4

正确答案:B

解析:需要修改前驱节点的next域和后继节点的prior域。

6、与非循环单链表相比,循环单链表的主要优点是()。

A.不再需要头指针

B.已知某个节点的位置后,能够容易找到它的前驱节点

C.在进行插入、删除操作时,能更好地保证链表不断开

D.从表中任意节点出发都能扫描到整个链表

正确答案:D

解析:循环单链表中可以循环扫描,因此从表中任意节点出发都能扫描到整个链表。

7、设有带头节点的循环单链表L,当这种链表成为空链表时,有()。

A.表头节点指针域next为空

B.L的值为NULL

C.表头节点的指针域next与L的值相等

D.表头节点的指针域next与L的地址相等

正确答案:C

解析:带头节点的循环单链表L成为空链表时满足L->next==L,即表头节点*L的指针域next与L的值相等,而不是表头节点*L的指针域next与L的地址相等。

8、在长度为n(n≥1)的循环双链表L中,删除尾节点的时间复杂度为()。

A. O(1)

B. O(n)

C. O(n2)

D. O(nlog2n)

正确答案:A

解析:通过头节点指针直接找到尾节点,然后再删除该尾节点,对应的时间复杂度为O(1)。

9、将两个分别含有m、n个节点的有序单链表归并成一个有序单链表,要求不破坏原有的单链表,对应算法的空间复杂度是()(MIN表示取最小值)。

A.O(n)

B.O(m)

C.O(m+n)

D.O(MIN(m,n))

正确答案:C

解析:将两个有序单链表B归并到C中时,通过比较B中的节点,将比较小的节点复制到C中,复制次数为m+n,即新建m+n个节点,对应的空间复杂度为O(m+n)。

10、已知两个长度分别为m 和n 的升序单链表,若将它们合并为一

个长度为m+n 的降序单链表,则时间复杂度是()。

A.O(n)

B.O(m×n)

C.O(m)

D.O(m+n)

正确答案:D

11、在长度为n(n≥1)的双链表L中,删除p所指节点的时间复

杂度为()。

A. O(1)

B. O(n)

C. O(n2)

D. O(nlog2n)

正确答案:A

解析:在双链表中,通过p所指节点可以找到前后节点,通过其

前后节点来删除p所指节点,对应的时间复杂度为O(1)。

12、在长度为n(n≥1)的循环单链表L中,删除尾节点的时间复

杂度为()。

A. O(1)

B. O(n)

C. O(n2)

D. O(nlog2n)

正确答案:B

解析:通过L查找到尾节点的前驱节点,然后删除尾节点,对应

的时间复杂度为O(n)。

13、在只有尾节点指针rear没有头节点的非空循环单链表中,删除

尾节点的时间复杂度为()。

A. O(1)

B. O(n)

C. O(n2)

D. O(nlog2n)

正确答案:B

解析:通过rear查找到尾节点的前驱节点,然后删除尾节点,对

应的时间复杂度为O(n)。

14、在只有尾节点指针rear没有头节点的非空循环单链表中,删除

开始节点的时间复杂度为()。

A. O(1)

B. O(n)

C. O(n2)

D. O(nlog2n)

正确答案:A

解析:通过rear指针直接删除开始节点。

15、两个长度为n的双链表,节点类型相同,若以h1为头指针的双

链表是非循环的,以h2为头指针指针的双链表是循环的,则()。

A.对于非循环双链表来说,删除首节点的操作,其时间复杂度都是

O(n)