2-4 线性表练习题

1、一个线性表第一个元素的存储地址是 100,每个元素的长度

      为 2, 则第 5 个元素的地址是 (  B   )。
      (A)110 (B)108(C)100 (D)120

**第i个元素首地址是100+2*(i-1) **

2、向一个有 127 个元素的顺序表中插入一个新元素并保持原来

      顺序不变,平均要移动(C )个元素。
      (A)64(B)63 (C)63.5 (D)7

3、顺序存储结构是通过 ___B_____ 表示元素之间的关系的

  1.  逻辑上相邻     (B) 物理上地址相邻     (C) 指针    (D) 下标

4、对于顺序存储的线性表,访问结点和删除结点的时间复杂度分别为(A )。

  1.  O(1)、O(n)          (B) O(1)、O(1)
  2.  O(n)、O(1)          (D) O(n)、O(n)

***顺序存储可以实现“随机存取”,因此访问结点的时间复杂度为O(1),而插入、删除结点由于涉及到大量移动元素,故其时间复杂度为O(n)。***

 

选择:

1、线性表采用链式存储结构时,其地址 ( D)。
      (A) 必须是连续的              (B) 部分元素的地址必须是连续的  
      (C) 一定是不连续的          (D) 连续与否均可以

本题考查线性表的存储结构,当线性表采用链式存储时,它是用节点来存储数据元素的,节点的空间可以是连续的,也可以是不连续的,因此,存储数据元素的同时必须存储元素之间的逻辑关系。

2、在一个单链表中,在 p 之后插入 s 所指结点,则执行 ( B)。

   (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;

解释一:首先的保证p后面的一个节点不能断掉,应为是单链表,所以p后面的节点先要与新插入的s相连,s->next = p->next
然后在将s与p相连,p->next= s

解释二:s->next=p->next的意思是s在p->next的结点前面了,
p->next=s的意思是s在p结点的后面

3、在一个单链表中,若删除 p 所指结点的后续结点,则执行 ( A)

   (A)p->next=p->next->next;

在一个单链表中,若要删除p结点的后续结点,只要将p的指针域指向p的后继的后继即可,即p↑.next=p↑.next↑.next。

   (B)p=p->next; p->next=p->next->next;

   (C)p->next=p->next;    

   (D)p =p->next->next;  

4. 设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为(A )。

A.q=p->next;p->data=q->data;p->next=q->next;free(q); 

B.q=p->next;q->data=p->data;p->next=q->next;free(q);

C.q=p->next;p->next=q->next;free(q);

D.q=p->next;p->data=q->data;free(q);

解释:

5.若线性表最常用的操作是存取第i个元素及前驱的值,则采用(D )存储方式节省时间。

单链表      B.双链表       C.单循环链表      D.顺序表

同时在顺序表中查找第i个元素的前趋也很方便。单链表和单循环链表既不能实现随机存取,查找第i个元素的前趋也不方便,双链表虽然能快速查找第i个元素的前趋,但不能实现随机存取。

6.设一个链表最常用的操作是从末尾插入节点和删除尾结点,则选用(D  )最节省时间。

A.单链表                    B.单循环链表  

C.带尾指针的单循环链表      D.带头结点的双循环链表

双向循环链表的头指针的pre指向的就是尾部,从头指针向前移动一次指针即可!

 

简单题

1.动态顺序表和动态链式表各有哪些优缺点?

答:动态顺序存储:

    优点:存储密度大,存储空间利用率高,可随机存取。

          结点空间可动态申请追加。

    缺点:插入或删除元素时不方便。

    动态链式存储:

    优点:插入或删除元素时很方便,使用灵活。

          结点空间可以动态申请和释放;

缺点:存储密度小,存储空间利用率低,非随机存取。

2.顺序表、链表各自的使用场合?

答:顺序表适宜于做查找这样的静态操作;

        链表宜于做插入、删除这样的动态操作。

        若线性表的长度变化不大,且其主要操作是查找,

        则采用顺序表;

        若线性表的长度变化较大,且其主要操作是插入、

        删除操作,则采用链表。

  • 8
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值