线性结构期末复习

线性表与链表

  1. 数组与链表的查找增添时间复杂度
  2. 地址
  3. 衍生出的单循环链表与双循环链表

对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N).
数组访问下标故为O(1),增加需要元素后移故为O(n)
T
若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用顺序表存储最节省时间。
在最后插入删除不需要其他元素的后移,访问也是根据下标,故正确
T
在具有N个结点的单链表中,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)。
单链表与数组不同,单链表访问需要根据指针一个个找,故为O(n),增加删除则直接在指针处操作故为O(1)
F
对于顺序存储的长度为N的线性表,删除第一个元素和插入最后一个元素的时间复杂度分别对应为O(1)和O(N)。
删除第一个元素为O(n),删除最后一个元素为O(1)
F
若用链表来表示一个线性表,则表中元素的地址一定是连续的。
链表为非连续空间,数组为连续空间
F
若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用哪种存储方式最节省运算时间?
单链表首先排除,因为查找到最后一个结点需要O(n),单循环链表是将链表尾结点指向头结点,目的是从任何结点开始都能遍历链表,但是并没有降低时间复杂度。双链表则是可以找到前驱和后继,但是仍然不能精准到最后一个,故带头结点的双循环链表是最好的选择
A.单链表
B.双链表
C.单循环链表
D.带头结点的双循环链表

将线性表La和Lb头尾连接,要求时间复杂度为O(1),且占用辅助空间尽量小。应该使用哪种结构?
带尾指针的单循环链表可以找到头指针,用Lb的尾指针找到其头指针后与La首尾相连
与其相比带头结点的双循环链表显得十分笨重,占用空间大

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

队列和堆栈

通过对堆栈S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。输出的序列为:123。
栈内元素变化:1 - 12 - 1 - 13 - 1 - NULL
输出元素:2 3 1

F
若一个栈的输入序列为1,2,3,…,N,输出序列的第一个元素是i,则第j个输出元素是j−i−1。
eg:1 2 3 4 5 输出5 进6 7 8,输出8 进9 10,第二个输出的元素为8!=2-5-1,由于不知道进栈情况所以不能确定出栈元素
F
所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。
循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。
F
在用数组表示的循环队列中,front值一定小于等于rear值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值