数据结构线性表选择题

 

 

 

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.

解答:此题比较新颖。其实是静态链表的一种变形。链接地址指的是下一个地址。

 

posted on 2019-07-07 21:25  楠楠要上天  阅读(617)  评论(0编辑  收藏  举报