目录
2.线性表
2.1线性表的定义和基本概念
2.1部分习题
2.2线性表的顺序表示
2.2部分习题
2.3线性表的链式表示
2.3部分习题
2.线性表
2.1线性表的定义和基本概念
2.1部分习题
1.线性表是具有n个()的有限序列
A.数据表 B.字符 C.数据元素 D.数据项
2.以下()是一个线性表
A.由n个实数组成的集合 B.由100个字符组成的序列 C.所有整数组成的序列 D.邻接表
1.C 2.B
线性表由具有相同数据类型的有限数据元素组成。
2.2线性表的顺序表示
2.2部分习题
1.在n个元素的线性表的数组表示中,时间复杂度为O(1)的操作是()
A.访问第i(0<=i<=n)个结点和求第i(2<=i<=n)个结点的直接前驱
B.在最后一个结点后插入一个新的结点
C.删除第一个结点
D.在第i(0<=i<=n)个结点后插入一个结点
2.设线性表有n个元素,()在顺序表实现比在链表实现的效率高
A.输出第i(0<=i<=n)个元素值
B.交换第3个元素和第4个元素的值
C.顺序输出这n个元素的值
1.AB
C中删除结点后,其余结点依次前移,D中需要后移n-i个结点,二者时间复杂度都为O(n)
2.AB
C中都需依次顺序访问每个元素,时间复杂度相同
2.3线性表的链式表示
2.3部分习题
1.给定有n个元素的一维数组,建立一个有序单链表的最低时间复杂度是()
A.O(1) B.O(n) C.O() D.O()
2.将长度为n的单链表链接在长度为m的单链表后,其算法的时间复杂度是()
A.O(1) B.O(n) C.O(m) D.O(n+m)
3.在一个长度为n的带头结点的单链表h上,设有尾指针r,则执行()操作与链表的表长有关
A.删除单链表中的第一个元素
B.删除单链表中的最后一个元素
C.在单链表第一个元素前插入一个新元素
D.在单链表最后一个元素后插入一个新元素
4.一个链表最常用的操作是在末尾插入结点和删除结点,选用()更好
A.带头结点的双循环链表 B.单循环链表 C.带尾指针的单循环链表 D.单链表
5.设对n(n>1)个元素的线性表运算有:删除第一个元素;删除最后一个元素;在第一个元素之前插入一个新元素;在最后一个元素之后插入新元素,最好使用()
A.只有尾结点指针没有头结点指针的循环单链表
B.只有尾结点指针没有头结点指针的非循环双链表
C.只有头结点指针没有尾结点指针的循环双链表
D.既有头结点指针又有尾结点指针的循环单链表
1.D
若先建立链表,一次插入建立有序表,则每插入一个元素就遍历链表寻找位置,时间复杂度为O()。若先将数组排好序,然后建立链表,建立链表时间复杂度为O(n),数组排序最好时间复杂度为O()
2.C
先遍历长度为m的链表,找到其尾结点,将其next域指向另一个链表的首结点
3.B
删除最后一个结点,需置其前驱结点指针域为null,需要从头开始遍历找到该结点
4.A
需要修改其相邻节点的指针域,寻找尾结点及尾结点前驱结点时,只有带头结点的双循环链表所需时间更少
5.C
C执行这四种运算,时间复杂度为O(1);A中删除尾结点时,需找到前一个结点,复杂度为O(n);B中删除首结点时,需通过尾结点的prior指针找到首结点,时间复杂度为O(n);D中删除尾结点时,需要找到前一个结点,时间复杂度为O(n)