【考研类试卷】线性表及答案解析.doc
《【考研类试卷】线性表及答案解析.doc》由会员分享,可在线阅读,更多相关《【考研类试卷】线性表及答案解析.doc(14页珍藏版)》请在麦多课文档分享上搜索。
1、线性表及答案解析(总分:104.00,做题时间:90 分钟)一、单项选择题(总题数:12,分数:24.00)1.(1)静态链表既有顺序存储的优点,又有动态链表的优点,所以,它存取表中第 i 个元素的时间与 i 无关。(2)静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。(3)静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。以上错误的是( )。(分数:2.00)A.(1),(2)B.(1)C.(1),(2),(3)D.(2)2.在一个长度为 n 的顺序表中删除第 i 个元素(0=i=n)时,需向前移动( )个元素。(分数:2.00)A.n-iB.n-i+1C.n
2、-i-1D.i3.下面关于线性表的叙述中,错误的是哪一个?( )(分数:2.00)A.线性表采用顺序存储,必须占用一片连续的存储单元B.线性表采用顺序存储,便于进行插入和删除操作C.线性表采用链接存储,不必占用一片连续的存储单元D.线性表采用链接存储,便于插入和删除操作4.下述哪一条是顺序存储结构的优点?( )(分数:2.00)A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示5.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( )存储方式最节省时间。(分数:2.00)A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表
3、6.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为( )。(分数:2.00)A.O(n),O(n)B.O(n),O(1)C.O(1),O(n)D.O(1),O(1)7.线性表是( )。(分数:2.00)A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空8.设单链表中结点的结构为typedef struct node链表结点定义ElemType data; 数据struct node*Link; 结点后继指针ListNode;已知指针 p 所指结点不是尾结点,若在 p 之后插入结点 s,则应执行下列哪一个操作?( )(分数:
4、2.00)A.slinkp;plinks;B.slinkplink;plinks;C.s 一link=Plink;PS;D.plinkS;slinkp;9.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。(分数:2.00)A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表10.在双向循环链表中,在 P 所指的结点之后插入 S 指针所指的结点,其操作是( )。(分数:2.00)A.pnext=s;sprior=p;pnextprior=s;snext=pnext;B.sprior=p;snext=pnext;pne
5、xt=s;Pnextprior=s:C.pnext=s;pnextprior=s;sprior=p;snext=pnext;D.sprior=p;snext=pnext;pnextprior=s;pnext=s:11.在一个长度为 n 的顺序表中向第 i 个元素(0in+1)之前插入一个新元素时,需向后移动( )个元素。(分数:2.00)A.n-iB.n-i+1C.n-i-1D.i12.若长度为 n 的线性表采用顺序存储结构,在其第 i 个位置插入一个新元素的算法的时间复杂度为( )(1=i=n+1)。(分数:2.00)A.O(0)B.O(1)C.O(n)D.O(n2)二、综合应用题(总题数:
6、8,分数:80.00)13.设计在无头结点的单链表中删除第 i 个结点的算法。(分数:10.00)_14.设计将带表头的链表逆置算法。(分数:10.00)_15.设顺序表中的数据元素递增有序,编写一算法将元素 X 插入到顺序表的适当位置上,并保证该表的有序性。(分数:10.00)_16.设线性表 A=(a1,a 2,a 3,a n)以带头结点的单链表作为存储结构。编写一个函数,对 A 进行调整,使得当 n 为奇数时 A=(a2,a 4,a n-1,a 1,a 3,a n),当 n 为偶数时A=(a2,a 4,a n,a 1,a 3,a n-1)。(分数:10.00)_17.试分别用顺序表和单链
7、表作为存储结构,实现将线性表(a 0,a 1,a 2,a n-1)就地逆置的操作,所谓“就地”,是指辅助空间应为 O(1)。(分数:10.00)_18.假设以带头结点的单链表表示有序表,单链表的类型定义如下:typedef struct nodeDataType data:struct node *nextLinkNode, *LinkList;编写算法,从有序表 A 中删除所有和有序表 B 中元素相同的结点。(分数:10.00)_19.设带表头结点的双向链表的定义为typedef int ElemType;typedef struct dnode双向链表结点定义ElemType data;数
8、据struct dnode*lLink,*rLink;结点前驱与后继指针)DblNode;typedef DblNode*DblList;双向链表试设计一个算法,改造一个带表头结点的双向链表,所有结点的原有次序保持在各个结点的右链域 rLink中,并利用左链域 lLink 把所有结点按照其值从小到大的顺序连接起来。(分数:10.00)_20.已知 L1、L2 分别为两循环单链表的头结点指针,m,n 分别为 L1、L2 表中数据结点个数。要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。(分数:10.00)_线性表答案解析(总分:104.00,做题时间:90 分钟)一、单项选择题(
9、总题数:12,分数:24.00)1.(1)静态链表既有顺序存储的优点,又有动态链表的优点,所以,它存取表中第 i 个元素的时间与 i 无关。(2)静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。(3)静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。以上错误的是( )。(分数:2.00)A.(1),(2)B.(1) C.(1),(2),(3)D.(2)解析:静态链表使用结构体数组来实现线性链表的功能。因为其用游标 cur 来指示下一个数据元素的存储位置,所以存取数据时静态链表同线性链表(单链表)是相似的。也就是说,静态链表在存取表中第 i 个元素的时间同 i 是
10、相关的。2.在一个长度为 n 的顺序表中删除第 i 个元素(0=i=n)时,需向前移动( )个元素。(分数:2.00)A.n-i B.n-i+1C.n-i-1D.i解析:一般情况下,删除顺序表的第 i(1-i-n)个元素时需要将第 i+1 到第 n 个元素(共 n-i 个元素)依次向前移动一个位置。所以答案为 A。3.下面关于线性表的叙述中,错误的是哪一个?( )(分数:2.00)A.线性表采用顺序存储,必须占用一片连续的存储单元B.线性表采用顺序存储,便于进行插入和删除操作 C.线性表采用链接存储,不必占用一片连续的存储单元D.线性表采用链接存储,便于插入和删除操作解析:线性表采用顺序存储,
11、并不便于进行插入和删除操作。4.下述哪一条是顺序存储结构的优点?( )(分数:2.00)A.存储密度大 B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示解析:顺序存储利用物理的邻接关系表示数据元素之间的逻辑关系,因此没有必要设置指针域,所以其存储密度比链式存储大,但是插入运算和删除运算都需大量移动数据元素,并不方便;D 选项并不是顺序存储结构的优点。所以答案为 A。5.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( )存储方式最节省时间。(分数:2.00)A.顺序表 B.双链表C.带头结点的双循环链表D.单循环链表解析:“存取任一指定序
12、号”最好的方法是实现“随机存取”,则可采用顺序表。并且,因为插入和删除操作都是在最后进行的,所以无需大量移动数据元素,选项 A 是最合适的。6.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为( )。(分数:2.00)A.O(n),O(n)B.O(n),O(1)C.O(1),O(n) D.O(1),O(1)解析:顺序存储可以实现“随机存取”,因此访问结点的时间复杂度为 O(1),而插入、删除结点由于涉及到大量移动元素,故其时间复杂度为 O(n)。7.线性表是( )。(分数:2.00)A.一个有限序列,可以为空 B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,
13、不可以为空解析:线性表是由相同类型的结点组成的有限序列。如:由 n 个结点组成的线性表(a1,a 2,a n)a1是最前结点,a n是最后结点。结点也称为数据元素或者记录。线性表中结点的个数称为其长度。长度为 O 的线性表称为空表。所以答案为 A。8.设单链表中结点的结构为typedef struct node链表结点定义ElemType data; 数据struct node*Link; 结点后继指针ListNode;已知指针 p 所指结点不是尾结点,若在 p 之后插入结点 s,则应执行下列哪一个操作?( )(分数:2.00)A.slinkp;plinks;B.slinkplink;plin
14、ks; C.s 一link=Plink;PS;D.plinkS;slinkp;解析:*9.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。(分数:2.00)A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表 解析:仅有尾指针的单循环链表,可以非常方便地找到尾结点,尾结点后面的第一个结点往往是头结点,头结点的下一个结点就是第线性表的第一个结点。对最后一个元素和第一个元素操作对带尾指针的单循环链表是非常方便的。10.在双向循环链表中,在 P 所指的结点之后插入 S 指针所指的结点,其操作是( )。(分数:2.00)A
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研 试卷 线性 答案 解析 DOC
