第二章作业题2-链表(1)

1-1

在具有N个结点的单链表中,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)。 (1分)

 F:反了

 

1-2

若用链表来表示一个线性表,则表中元素的地址一定是连续的。 (1分)

F

 

1-3

将长度分别为m,n的两个单链表合并为一个单链表的时间复杂度为O(m+n)。 (1分)

F

 

1-4

(neuDS)单链表不是一种随机存取的存储结构。 (1分)

 T

计算机科学中,随机存取(有时亦称直接访问)代表同一时间访问一组序列中的一个随意组件。反之则称循序访问,即是需要更多时间去访问一个远程组件。随机存取存储器的基本结构可分为三个部分:存储矩阵,地址译码器,读写电路。

 

2-1

h为不带头结点的单向链表。在h的头上插入一个新结点t的语句是:(2分)

  1. h=t; t->next=h->next;
  2. t->next=h->next; h=t;
  3. h=t; t->next=h;
  4. t->next=h; h=t;

 

2-2

在单链表中,若p所指的结点不是最后结点,在p之后插入s所指结点,则执行 (2分)

  1. s->next=p; p->next=s;
  2. s->next=p->next; p=s;
  3. s->next=p->next; p->next=s;
  4. p->next=s; s->next=p;

 

2-3

带头结点的单链表h为空的判定条件是: (2分)

  1. h == NULL;
  2. h->next == NULL;
  3. h->next == h;
  4. h != NULL;

 

2-4

将两个结点数都为N且都从小到大有序的单向链表合并成一个从小到大有序的单向链表,那么可能的最少比较次数是: (2分)

  1. 1
  2. N
  3. 2N
  4. NlogN

 

2-5

线性表若采用链式存储结构时,要求内存中可用存储单元的地址 (1分)

  1. 必须是连续的
  2. 连续或不连续都可以
  3. 部分地址必须是连续的
  4. 一定是不连续的

 

2-6

在具有N个结点的单链表中,实现下列哪个操作,其算法的时间复杂度是O(N)? (2分)

  1. 在地址为p的结点之后插入一个结点
  2. 删除开始结点
  3. 遍历链表和求链表的第i个结点
  4. 删除地址为p的结点的后继结点

 

2-7

对于一个具有N个结点的单链表,在给定值为x的结点后插入一个新结点的时间复杂度为 (2分)

  1. O(1)
  2. O(N/2)
  3. O(N)
  4. O(N​2​​)

 

2-8

链表不具有的特点是: (1分)

  1. 插入、删除不需要移动元素
  2. 方便随机访问任一元素
  3. 不必事先估计存储空间
  4. 所需空间与线性长度成正比

 

2-9

(neuDS)在一个含有n个结点的有序单链表中插入一个新结点,使单链表仍然保持有序的算法的时间复杂度是( )。 (2分)

  1. O(1)
  2. O(log​2​​n)
  3. O(n)
  4. O(n​2​​)

 

2-10

将长度为n的单链表连接在长度为m的单链表之后的算法的时间复杂度为( )。 (2分)

  1. O(1)
  2. O(m)
  3. O(n)
  4. O(n+m)

 

2-11

(neuDS)在单链表中,增加一个头结点的最终目的是为了( )。 (2分)

  1. 使单链表至少有一个结点
  2. 方便运算的实现
  3. 标识表结点中首结点的位置
  4. 说明单链表是线性表的链式存储

 

2-12

在单链表中,要删除某一指定结点,必须先找到该结点的()。 (2分)

  1. 直接前驱
  2. 自身位置
  3. 直接后继
  4. 直接后继的后继

 

2-13

以下关于链式存储结构的叙述中,()是不正确的。 (2分)

  1. 结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构
  2. 逻辑上相邻的结点物理上不必邻接
  3. 可以通过计算直接确定第i个结点的存储地址
  4. 插入、删除运算操作方便,不必移动结点

 

2-14

线性链表不具有的特点是()。 (2分)

  1. 随机访问
  2. 不必事先估计所需存储空间大小
  3. 插入与删除时不必移动元素
  4. 所需空间与线性长度成正比

 

2-15

线性表若采用链式存储结构时,要求内存中可用存储单元的地址()。 (2分)

  1. 必须是连续的
  2. 部分地址必须是连续的
  3. 一定是不连续的
  4. 连续或不连续都可以

 

2-16

对线性表,在下列情况下应当采用链表表示的是()。 (2分)

  1. 经常需要随机地存取元素
  2. 经常需要进行插入和删除操作
  3. 表中元素需要占据一片连续的存储空间
  4. 表中的元素个数不变

 

2-17

不带表头附加结点的单链表为空的判断条件是头指针head满足条件()。 (2分)

  1. head==NULL
  2. head->next==NULL
  3. head->next== head
  4. head!=NULL

 

2-18

可以用带表头附加结点的链表表示线性表,也可以用不带头结点的链表表示线性表,前者最主要的好处是()。 (2分)

  1. 可以加快对表的遍历
  2. 使空表和非空表的处理统一
  3. 节省存储空间
  4. 可以提高存取表元素的速度
  • 12
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值