数据结构线性表选择题
1.
解答:逻辑结构不涉及操作
2.
解答:这道题有坑,结点之间不一定连续。结点内部是连续的
3.
解答:循环语句每一次是上一次的二倍(基本语句)
4
解答:可以把每一步拆解成如下的树状结构。
.
5.
解答:两点注意,一点为头插法建立链表与链表输入顺序相反,可以满足升序到降序的转变。第二点最坏情况是每一个元素都要比较一次。
6.
解答:count的变化不会影响循环。两个for循环是乘法规则,外层是对数级,内层是n级。
7.
解答:1+2+3+4+5.......K
8.
解答:这个其实是一个冒泡排序法。最坏情况就是整体倒序。下面的公式套路以后会常见。
9.
解答:本质上是一个等差数列的求和。
10.
解答:此题有坑,存储结构和存储方式是两个概念。顺序表就是数组。
11.
解答:本质上是数组,IV选项与II选项一个是大范围的包括各种情况所以不能选。
12.
解答:碰到移动的题一定要考虑下标,可以画特例图去解决问题。
13.
解答:数组的随机存取得O(1)
14.
解答:第一个位置和最后一个元素的下一位均可以插入元素。但是这个位置指的不是数组的下标。
15.
解答;顺序结构的随机存储,找到直接改值就行。
16.
解答:I顺序存储也可以存储链式结构(比如说静态链表)。II注意是线性表(线性表分为顺序结构和链式结构,顺序结构与时间是无关的)。III静态链表使用数组构建的但是他具有链表的特性。IV这个选项是有坑的,插入时间复杂度为O(1)但是寻找要插入的位置是O(n),注意区分问题的形式。V队列操作在两端发生,所以需要尾指针以及循环队列。
17.
解答:A删除操作链表由于顺序表。B最后插链表需要遍历顺序表不需要。C两者没有区别。D交换数组要方便多了。
18.
解答:这道题简化了操作,提前定义好了去,q,p的节点。注意不要断链,先后在前一般情况下。
19.
解答:A链表是需要遍历,所以删除与长度有关。B表头,表尾没有少一个结点。C双链表确实方便寻找位置。D线性表的分类,单链表是有关的。
20.
解答:A第一步断链不合适。B最后一步指针指向了自身。C与p->next无关。
21.
解答:两个大交换就可以解决删除问题。
22.
解答:同21解答没有什么技巧。
23.
解答:双循环链表有个特点,每一个结点不存在空指针NULL,可以排除ABC。这种链表为空的条件就是头结点自己指向自己。
24.
解答:最节省时间的复杂度一般是O(1),这道题可以转换成找第一个元素和最后一个元素。A带头结点的双循环链表访问头尾很方便。B需要遍历才能找到位置。C找尾方便,但是找头需要遍历。D单链表很麻烦需要遍历。
25.
解答:根据题意找三个结点,头,尾,倒数第二个结点。A选项找倒数第二个需要遍历。B选项找倒数第二个需要遍历。C找倒数第二个需要遍历。
26.
解答:此题比较新颖。其实是静态链表的一种变形。链接地址指的是下一个地址。