第二章判断选择

第二章作业题1-顺序表
判断题
1,对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)
对,增加结点时要吧节点之后的所有元素都往后移动,最坏的情况就是移动N次喽,所以是O(N)
2,若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用顺序表存储最节省时间。 T
3,对于顺序存储的长度为N的线性表,删除第一个元素和插入最后一个元素的时间复杂度分别为O(N)和O(1)
5,顺序比表是随机存取(可以通过下标随机的去保存一个值,查询某下标对应的元素的值),链表是顺序存取
6,顺序存 储(数组)对应随机存取,链式存储(指针)对应顺序存 取。看准
随机存取(就是直接访问),顺序存取(循环访问)
选择题
1,对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度为:O(1),O(N)(这个N代表移动的个数与数据总数有关)
2,(neuDS)要将一个顺序表{a​0,a1,……,an−1}中第i个数据元素​i(0≤i≤n-1)删除,需要移动(B)个数据元素。 (2分)
A i
B n-i-1
C n-i
D n-i+1
啊,看看i的取值范围
9,若长度为n的线性表采用顺序存储结构,那么删除它的第i个数据元素之前,需要它一次向前移动(A)个数据元素。 (2分)
A n-i
B n+i
C n-i-1
D n-i+1

第二章作业题2-链表(1)
1,链表中访问节点的时间复杂度是O(N)
3,带头节点的单链表H为空的判定条件是:H->next= =NULL;
4,将两个结点数都为N且都从小到大有序的单向链表合并成一个从小到大有序的单向链表,那么可能的最少比较次数是:N
6,在具有N个结点的单链表中,实现下列哪个操作,其算法的时间复杂度是O(N)?
A在地址为p的结点之后插入一个结点,O(1)
B删除开始结点O(1)
C遍历链表和求链表的第i个结点
D删除地址为p的结点的后继结点O(1)
关于A和D想,当知道地址的时候可以直接访问,所以,时间复杂度都为O(1)
若改为在p节点之后插入或删除,时间复杂度就变成了O(N)
如下一题(仔细)
7,对于一个具有N个结点的单链表,在给定值为x的结点后插入一个新结点的时间复杂度为
O(N)
11,在单链表中,增加一个头节点的最终目的是为了 方便运算的实现
12,在单链表中,要删除某一结点,必须先找到该结点的 直接前驱
13,链式存储结构 插入,删除 操作方便,不必移动结点
17,单链表判空 有头节点时H->next= =NULL;
没有头节点时H= =NULL;
18,带 头节点 的链表好处是可以使空表和非空表同一处理,方便运算的实现

第二章作业题3-链表(2)
1,循环链表中,若h指向链表的头结点,p指向链表的尾节点,则p->next= =h;
2,双向循环链表 结点p之后插入s的语句是,在草纸上画个图表示一下,光想不好想
3,双向链表
4,某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用什么存储方式最节省运算时间? B(2分)
A单链表
B仅有尾指针的单循环链表
C仅有头指针的单循环链表
D双链表
选B,
C虽然可以直接获得第一个元素,但是想要获得最后一个元素却需要遍历整个链表。
而B给出的是带有尾结点的单循环链表,这样就可以直接得到最后一个元素,
想要得到第一个元素只需要再遍历一个元素就可以,所以选择B
(头指针逻辑上永远指向表头(所以它与链表的名还是有区别的),尾指针指向表尾,头结点的作用是方便同一处理空表与非空表)
(头指针如果是有头结点链表,自然永远指向头结点不可移动。如果是无头结点链表,当删除首元结点后就需要后移。)
5,若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用哪种存储方式最节省运算时间? (2分)
带头结点的双循环链表
带尾指针的单向链表:插入可以,但是删除无法完成,因为p需要前移,但是单向链表无法得到前一个节点。
带尾指针的双向链表:插入和删除都很简单。
带尾指针的单向循环链表:插入很简单,删除则需要遍历整个链表,比较费时。
带头指针的双向循环链表:插入和删除都很简单。
6,将线性表La和Lb头尾连接,要求时间复杂度为O(1),且占用辅助空间尽量小。应该使用哪种结构?带尾指针的单循环链表 (2分)
~7,循环单链表,链表中最后一个结点指针域不再是结束标记,而是指向链表的第一个结点
双向链表,每个结点都有两个指针
(neuDS)在链表中若经常要删除表中最后一个结点或在最后一个结点之后插入一个新结点,则宜采用()存储方式。 (2分)
用尾指针标识的循环单链表
!!!他什么都没说,综合考虑还是选这个吧
8,尾结点(最后一个数据元素,包括数据域和指针域)不等于尾指针(仅仅是一个指针)
10,若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。D (2分)
单链表
给出表头指针的单循环链表
双链表
带表头附加结点的双循环链表
D ,题目中明确了时间
11,在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行()操作与链表的长度有关。 (2分)
删除单链表中的最后一个元素
~13,如果对线性表的运算只有4种,即删除第一个元素,删除最后一个元素,在第一个元素前面插入新元素,在最后一个元素的后面插入新元素,则最好使用()。 (2分)
只有表尾指针没有表头指针的循环单链表
只有表尾指针没有表头指针的非循环双链表
只有表头指针没有表尾指针的循环双链表
既有表头指针也有表尾指针的循环单链表
C 择优选吧
!!!一般不采用双链表,太浪费空间了
14,如果对线性表的运算只有2种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用
只有表尾指针没有表头指针的循环单链表
15 在插入操作时,一定要注意是在前插入还是在后插入
16,带表头附加结点的双向循环链表为空的判断条件是头指针L满足条件()。 (2分)
L= =NULL
L->right= =NULL
L->left = =NULL
L->right= =L
D,听绕的,自己读读吧,他是循环链表,所以L->right==L,不是循环的话就是应该时NULL了吧
17,循环链表的主要优点是()从表中的任意结点出发都能扫描到整个链表

第二章作业题4-线性表应用
采用多项式的非零项链式存储表示法,如果两个多项式的非零项分别为N​1​​和N​2​​个,最高项指数分别为M​1​​和M​2​​,则实现两个多项式相乘的时间复杂度是:(2分)
O(N​1​​×N​2​​)

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值