写这么高价格,就是为了让你们别在csdn订阅,这个平台过于恶心
别在csdn订阅,看readme,加群私聊我订阅。
别在csdn订阅,看readme,加群私聊我订阅。
别在csdn订阅,看readme,加群私聊我订阅。
别在csdn订阅,看readme,加群私聊我订阅。
别在csdn订阅,看readme,加群私聊我订阅。
更新日期:2022年9月18日
试看
【考研数据结构题型分类讲解练习】1-1线性表--选择题--习题篇_Anthony_4926-CSDN博客
目录
一、选择判断
题型一:选择合理的随机存取结构
线性表的顺序存储可以理解成数组,它是可以随机存储的结构。所谓随机存储就是存取第i个元素的时间复杂度是O(1),花费的时间最少。
线性表与随机存取密不可分
1-1. 线性表的顺序存储结构是一种()【北京理工大学2006五、3 (1分)】
A.随机存取的存储结构
B.顺序存取的存储结构
C.索引存取的存储结构
D. Hash存取的存储结构
1-2.能在0(1)时间内访问线性表的第i个元素的结构是( ) 。【电子科技大学2011一、2(2分)】
A.顺序表
B.单链表
C.单向循环链表
D.双向链表
1-3.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( )存储方式最节省时间。【哈尔滨工业大学2001二、1 (2分) 【烟台大学2007一、3 (25)
A.顺序表
B.双链表
C.带头结点的双循环链表
D.单循环链表
解析:题中说“存取任意指定序号”,这就是随机存取,对应的是顺序表
1-4.对于一个线性表,既要求存储结构能够反应数据元素之间的逻辑关系,又要求能够较快进行插入和删除,则应采用_______存储结构。【安徽大学 834 2014】
A.顺序
B.散列
C.链式
D.索引
解析:快速插入删除是链式存储结构的特性,其元素间的逻辑关系是通过指针来保持的。
1-5.若线性表最常用的操作是存取第Ⅰ个元素及其前驱和后继元素的值,为节省时间应采用的存储方式( )。【北京理工大学 2004 一、3(1分)】
A.单链表
D.顺序表
B.双向链表
C.单循环链表
解析:随机存取第i个元素,时间还最少,就是顺序表
1-6.链表不具有的特点是()。【电子科技大学 2012 一、3(2分)】【福州大学 1998 一、 8(2分)】【南京理工大学 2005 一、13 (1分)】
A.插入、删除不需要移动元素
B.可随机访问任一元素
C.不必事先估计存储空间
D.所需空间与线性长度成正比
解析:能够随机访问的只有顺序表
1-7.在 n个结点的线性表的数组实现中,算法的时间复杂性是 O(1)的操作是()。【哈尔滨工业大学 2003 二、1(1分)】
A.访问第 i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)
B. 在第 i个结点后插入一个新结点(1≤i≤n)
C. 删除第 i 个结点(1≤i≤n)
D.以上都不对
解析:访问顺序表第i个元素时间复杂度为O(1),同理访问顺序表第i-1个元素的时间复杂度也为O(1)
1-8.若某线性表最常用的操作是存取第i个元素及其前驱的值,则采用()存储方式节省时 .间。【暨南大学 2010 一、5 (2分)】
A.单链表
B.双链表
D.顺序表
C. 单循环链表
1-9.若经常需要按序号查找线性表中的数据元素,采用()比较合适。【北京理工大学 2007一、2(1分)】
A.顺序存储结构
B.链式存储结构
C.静态链表
D.链式存储结构或静态链表
解析:按序号就是方位第i个元素,仍然是随机存取。比如,访问第六号元素。
1-10.(判断)在顺序表中取出第i个元素所花费的时间与i成正比。(F)【北京邮电大学 2006 二、1(1分)】
解析:顺序表方位第i个元素时间复杂度为O(1),是常数级
1-11.(判断)顺序存储的线性表可以随机存取。(T)【中国海洋大学 2006 二、3(1分)】
解析:线性表与随机存取密不可分
1-12.(判断)取线性表的第i个元素的时间同i的大小有关。(F )【南京理工大学 1997二、9(2分)】
解析:线性表包括顺序表和链表。顺序表,无关,都是直接存取
1-13.(判断)在单链表中,要访问某个结点,只要知道该结点的指针即可,因此,单链表是一种随机存取结构。(F )【中国海洋大学 2007 二、2(1 分)】
解析:链表无法随机存取,只有顺序表能随机存取
题型二:根据插入删除选择合理的存储结构
- 顺序表插入删除伴随着元素的移动,因此不适合插入删除频繁的操作。相反,链表就很适合插入删除操作
2-1.下面关于线性表的叙述中,错误的是哪一个?()【北方交通大学 2001 一、14(2分)】
A.线性表采用顺序存储,必须占用一片连续的存储单元
B.线性表采用顺序存储,便于进行插入和删除操作
C.线性表采用链接存储,不必占用一片连续的存储单元
D.线性表采用链接存储,便于插入和删除操作
解析:
A:顺序表可以看做一个数组,数组的空间必须是连续的
B:顺序表插入删除伴随着元素的移动,不便于插入删除操作
C:链表的节点是分散的,彼此之间通过指针链接,因此占用的空间可以不连续
D:链表的插入删除操作只需更改指针的指向,不用移动大量元素
2-2.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。【南开大学 2000 一、3】【华中科技大学 2007 一、6(2分)】
A.单链表
B.仅有头指针的单循环链表
C.仅有尾指针的单循环链表
D.双链表
解析:插入删除频繁,所以应该用链表。
在最后一个元素后插入,要求我们快速找到最后一个元素;
删除第一元素,要求我们快速找到头指针。
具体解释如下:
2-3.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省时间。【电子科技大学 2013 一、3(2分)】【江苏大学 2006 一、3(2分)】
A.单链表
B.单循环链表
C.带头结点的双循环链表
D.带尾指针的单循环链表
解析:
在末尾插入节点,要求我们快速找到最后一个节点
在末尾删除节点,要求我们快速找到最后一个节点的前驱节点
具体解释如下:
2-4.若某线性表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用存储结构算法的时间效率最高的是()。【北京理工大学 2006 五、5(1分)】
A.单链表
B.给出表尾指针的单循环链表
C.双向链表
D.给出表尾指针的双向循环链表
解析:
最后一个节点之后插入节点,要求我们快速找到最后一个节点
删除最后一个节点,要求我们快速找到最后一个节点的前驱节点
具体解释如下:
2-5.对于一个线性表既要求能够进行较快速的插入和删除,又要求存储结构能反映数据之间的逻辑关系,则应该用( )。【哈尔滨工业大学 2005 二、2(1分)】
A. 顺序存储方式
B. 链式存储方式
C. 散列存储方式
D. 以上均可以
解析:要求快速插入删除,所以需要用链表。要求存储结构反应数据间的逻辑关系,同样是链表
2-6.(判断)顺序存储结构的主要缺点是不利于插入或删除操作。(T)【南京航空航天大学 1997一、2(1分)】
解析:顺序存储的插入删除伴随着大量元素的移动,所以不利于插入删除操作
2-7.(判断)在一个设有头指针和尾指针的单链表中,执行删除该单链表中最后一个元素的操作与链表的长度无关。(F )【中南大学 2003 一、2 (1分)】
解析:删除最后一个元素需要找到最后一个元素的前驱,在通过尾指针无法快速找到其前驱。只能通过头指针向后遍历链表,链表有多长就需要遍历多长,所以执行该操作与链表长度有关。
2-8.(判断)顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。(F )【北京邮电大学 2002 一、2(1分)】
解析:链式存储于顺序存储要根据使用场景来评判好坏。题目中给的理由本身是正确的,但是并不是使用场景
题型三:插入删除移动次数及时间复杂度
顺序表插入删除操作过程及时间复杂度知识点讲解可以看《顺序表插入、删除平均移动次数》
3-1.若长度为n的线性表采用顺序存储结构,在其第i(1≤i≤n+1)个位置之前插入一个新元素的算法的移动结点的平均次数为( )。【北京理工大学 2006 五、4(1分)】
A.n
B. n/2
C. (n-1)/2
D. (n+1)/2
3-2.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。删除一个元素时平均要移动表中的()个元素。【华中科技大学 2007 一、1(2分)】
A.n/2
B. (n+1)/2
C. (n-1)/2
D.n
3-3.从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动( )个元素。【暨南大学 2010 一、8(2 分)】【烟台大学 2007一、2(2 分)】【青岛大学 2000 五、1(2分)】
A. n-i
B. n-i+1
C. n-i-1
D. i
解析:这种题最快的方法就是举例子。一个长度为1的表,删除第一个元素,需要移动零个元素。即i=1,n=1,带回,看哪个等于0
3-4.(判断)在线性表的顺序存储结构中,插入和删除元素时,移动元素的个数与该元素的位置有关。(T)【中国海洋大学 2006 二、2 (1分)】
3-5.(判断)线性表的插入、删除总是伴随着大量数据的移动。( F)【北京邮电大学 2006 二、2(1分)】
解析:不是总伴随着元素的移动,比如在顺序表尾部插入元素。或者用链表作为存储结构时,都不需要移动元素
题型四:链表插入删除执行的操作
4-1.在一个单链表中,已知指针p指向其中的某个结点,若在该结点前插入一个由指针s指向的结点,则需执行( )。【北京理工大学 2006 九、4(1分)】
A.s- >next = p->next; p->next=s;
B.p->next=s; s->next=p;
C. r = p->next; p->next = s; s->next=r;
D. 仅靠已知条件无法实现
4-2.在一个单链表中,若p所指的结点不是最后一个结点,在p之后插入s所指的结点,则执行()。【暨南大学 2011 一、9(2分)】
A. s->next=p; p->next=s;
B. p->next=s; s->next=p;
C. p=s; s->next=p->next;
D. s->next=p->next; p->next=s;
4-3.对于双向循环链表,在p指针所指的结点之后插入s指针所指结点的操作应为()。【北京工业大学 2004 一、1(3分)】
A.p->right=s; s->left=p;p->right->left=s; s->right=p->right
B.p->right=s; p-right->left=s; s->left=p;s->right=p->right:
C.s->left=p; s->right=p->right; p->right=s; p->right->left=s;
D.s->left=p; s->right=p->right; p->right->left=s; p->right=s;
4-4.设双向循环链表中结点的结构有数据域 data,指针域 pre和next,链表不带头结点。若在指针 p所指结点之后插入结点 s,则应执行下列( )操作。【南京理工大学 2005 一、3(1分)】【北京交通大学 2006 一、1(2 分)】
A.p->next=s; s->pre=p;p->next->pre=s; s->next=p->next;
B.p->next=s; p->next->pre=s; s->pre=p; s->next=p->next;
C.s->pre=p; s->next=p->next; p->next=s; p->next->pre=s;
D.s->pre=p; s->next =p->next; p->next->pre=s; p->next=s;
解析:还是按照选项给的,逐一尝试即可
题型五:静态链表
静态链表相关知识点可以查看《静态链表》
5-1.静态链表中指针表示的是()。【中南大学 2003 二、2(1分)】
A.下一元素的地址
B.内存储器的地址
C. 下一元素在数组中的位置
D.左链或右链指向的元素的地址
5-2.
(1)静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第i个元素的时间与i 无关。
(2)静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。
(3)静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
以上错误的是()。【南京理工大学 2000 一、3(1.5 分)】
A.(1),(2)
B.(1)
C.(1),(2),(3)
D.(2)
解析:
(1)静态链表的逻辑结构还是一个链表,不具有随机存取的特点,所以错误
(2)静态链表是用数组实现的,没有办法扩容,所以正确
(3)链表的插入删除不需要移动元素,所以静态链表也不需要移动元素,只要改动指针就可以了。所以正确
5-3.静态链表与动态链表相比,其缺点是( )。【北京理工大学 2006 九、5(1分)】
A.插入、删除时需移动较多数据
B.有可能浪费较多存储空间
C.不能随机存取
D.以上都不是
解析:
A:静态链表与动态链表的插入删除都不要移动元素,更改指针即可
B:静态链表的用数组来实现的,他的存储空间是实现分配好的,当存入元素数量很少时,没用到的空间就浪费了
C:静态链表和动态链表都不能随机存取
5-4.(判断)所谓静态链表就是一直不发生变化的链表。(F)【合肥工业大学 2000】【烟台大学 2007二、2(1分)】
解析:静态是指存储空间实现分配好,动态是指动态分配空间。静态链表也可进行插入删除等操作,也可以发生改变。
题型六:指针头结点
6-1.(判断)带头结点的单循环链表中,任一结点的后继结点的指针域均不空。(T)【中国海洋大学2005 二、7 (1分)】
解析:在单链表中,next为空的只有最后一个节点,但是在单循环链表中,最后一个节点的next指向了第一个节点,所以就不会有空的next了
6-2.(判断)在具有头结点的链式存储结构中,头指针指向链表中的第一个数据结点。(F)【中国海洋大学 2007 二、1(1分)】
解析:没有头结点时,头指针指向第一个数据节点;有头结点时,头指针指向头结点
6-3.(判断)链表的每个结点都恰好有一个指针。( F)【北京邮电大学 2005 二、2(1分)】
解析:单链表每个节点都恰好有一个指针,双链表每个节点有两个。单链表,双链表都叫链表
6-4.单链表中,增加一个头结点的目的是()。【厦门大学 2003 一、1(2分)】
A.使单链表至少有一个结点
B.标识表结点中首结点的位置
C. 方便运算的实现
D.说明单链表是线性表的链式存储
解析:增加了头结点,链表中的每一个操作都一致了,不用单独处理第一个节点。方便运算实现
题型七:线性表与链表的比较及其各自特点
7-1.(判断)线性表的逻辑顺序与物理顺序总是一致的。(F )【吉林大学 2006 一、1(1分)】
解析:链表的物理顺序是不确定的
7-2.(判断)线性表中每个元素都有一个直接前驱和一个直接后继。( F)【北京交通大学 2005 三、1(2分)1】
解析:单链表尾结点没有后继,没有头结点的单链表第一个节点没有前驱
7-3.(判断)顺序存储方式只能用于存储线性结构。(F )【哈尔滨工业大学 2005 三、5(1分)】
解析:顺序存储还可以存储树、堆呢,《顺序存储结构存储二叉树和堆》
7-4.(判断)线性表中的所有数据元素的数据类型必须相同。(T )【清华大学 2004】
7-5.(判断)线性表采用链式存储表示时,所有结点之间的存储单元地址可连续可不连续。( T )【吉林大学 2007 一、1 (1分)】
解析:链表的节点地址可以不连续
7-6.(判断)集合与线性表的区别在于是否按关键字排序。(F )【大连海事大学 2001 一、5(1分)】
解析:集合就是一堆元素放一起,没有顺序。线性表也没有有序要的要求
7-7.(判断)对任何数据结构,链式存储结构一定优于顺序存储结构。(F )【南京航空航天大学 1997一、3 (1分)】
解析:采用链式存储于顺序存储的优劣要根据实际操作来定,没有绝对的谁优谁劣
7-8.(判断)线性表的顺序存储表示优于链式存储表示。( F )【中国海洋大学 2005 二、3(1分)】
解析:采用链式存储于顺序存储的优劣要根据实际操作来定,没有绝对的谁优谁劣
7-9.(判断)线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。(F )【北京邮电大学 1998 一、2(2分)】【中国海洋大学 2006 二、1(1分)】
解析:节点内部的存储空间一定是连续的,每个节点是作为一个整体来申请空间的。节点间可以不连续,通过指针串联
7-10.(判断)顺序存储结构属于静态结构,链式结构属于动态结构。(T )【中国海洋大学 2007二、3(1分)】
解析:静态结构是指由系统分配固定内存,然后不再改变。动态结构是指不确定存储数据的容量,动态改变的
7-11.(判断)循环链表不是线性表。( F)【南京理工大学 1998 二、1(2分)】
解析:逻辑结构包括线性结构和非线性结构。非线性结构中有树和图。循环链表不是树,不是图,只能是线性结构。
7-12.线性表是一个()。【电子科技大学 2010 一F、1(2 分)】【江苏大学 2005 一、1(2分)】
A.有限序列,可以为空
B.有限序列,不能为空
C.无限序列,可以为空
D.无限序列,不能为空
解析:一个空链表,就可以否定BCD
7-12.链表不具有的特点是()。【电子科技大学 2012 一、3(2分)】【福州大学 1998 一、 8 (2分)】【南京理工大学 2005 一、13(1分)】
A.插入、删除不需要移动元素
B. 可随机访问任一元素
C.不必事先估计存储空间
D.所需空间与线性长度成正比
解析:随机访问与顺序存储密不可分,链表不具有随机存储的特点