第2章线性表

线性表的定义和特点

        线性表:由n个数据特性相同的元素构成有限的序列。(n=0,称之为空表)

        线性表包含顺序表示和实现、链式表示和实现。

        插入和删除平均移动:n / 2 (可能是小数)

2.4.1 线性表的顺序表示和实现

        线性表的顺序:用一组地址连续的存储单元,存储数据元素,这种表示也称为顺序存储结构或顺序映像。

        线性表中数据可以随机存取,所以,以线性表的顺序存储结构是一种随机存取结构。

2.5 线性表的链式表示和实现

        单链表是非随机存取,也称为顺序存取的存储结构。

        节点包含两个域:数据域和指针域。

        数据域:存储数据信息。

        指针域:存储下一个节点位置。

        下面对首元节点、头节点、头指针加以说明:

        首元节点:存储第一个数据元素的节点。

        头节点:数据域可以不存储信息,指针域指向首元节点。

        头指针:指向链表中第一个节点。(有头节点指头节点,没头节点指首元节点。)

2.6 顺序表和链表的比较        

        2.6.1 空间性能

        存储密度:数据元素本身占用存储量 / 节点结构占用存储量(就是空间利用率)     

        顺序表的存储空间:可能出现闲置或溢出,没有额外存储,存储密度为1.

        链表的存储空间:不会出现闲置或溢出,需要额外存储节点,存储密度小于1

        2.6.2 时间性能

         顺序表:随机存取O(1),插入删除O(n)

         链表:顺序存取O(n),确定插入,删除位置后O(1).

   

创建一个包括n个结点的有序单链表的时间复杂度是(    )。

A.O(1)          B.O(n)            C.O(n2)          D.O(nlog2n)

答案:C

解释:单链表创建的时间复杂度是O(n),而要建立一个有序的单链表,则每生成一个新结点时需要和已有的结点进行比较,确定合适的插入位置,所以时间复杂度是O(n2)。

9. (单选题, 2分)在含有头结点的循环链表中,将头指针改设为尾指针(rear)后,其首元结点和尾结点的存储位置分别是

  • A. rear和rear→next→next
  • B. rear→next和rear
  • C. rear→next→next和rear
  • D. rear和rear→next
  • 含有头结点的循环链表,将头指针改设为尾指针,rear->next指向‘头结点’rear->next->next指向首元节点。

     

20. (单选题, 2分)在一个长度为n的带头节点的单链表h上,设有尾指针r,则执行()操作和链表的长度有关。

  • A. 删除单链表中的第一个元素
  • B. 删除单链表中最后一个元素
  • C. 在单链表第一个元素前插入一个新元素
  • D. 在单链表最后一个元素后插入一个新元素
  • 先要删除最后一个元素,需要找到第n-1元素,设置尾指针为n-1.

        

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值