两个整数序列A=a
1
,a
2
,a
3
,…,a
m
和B=b
1
,b
2
,b
3
,…,b
n
已经存入两个单链表中,设计一个算法,判断序列B是否是序列A的子序列。
若线性表最常用的运算是查找第i个元素及其前驱的值,则下列存储方式中最节省时间的是( )。
数据表A中有10 000个元素,如果仅要求求出其中最大的10个元素,则采用( )方法最节省时间。
已知有向图G=(V,A),其中V={a,b,c,d,e},A={<a,b>,<a,c>,<d,c>,<d,e>,<b,e>,<c,e>}。对该图进行拓扑排序,下面序列中不是拓扑排序的是( )。
已知有一棵二叉树,其高度为n,并且有且只有n个结点,那么二叉树的树形有( )种。
设哈希表长m=14,哈希函数H(key)=key mod 11。表中已有4个结点addr(15)=4,addr(38)=5,addr(61)=6,addr(84)=7,其余地址为空,如用二次探测再散列法处理冲突,则关键字为49的结点的地址是( )。
以下关于图的说法中正确的是( )。 Ⅰ.一个有向图的邻接表和逆邻接表中的结点个数一定相等 Ⅱ.用邻接矩阵存储图,所占用的存储空间大小只与图中结点个数有关,而与图的边数无关 Ⅲ.无向图的邻接矩阵一定是对称的,有向图的邻接矩阵一定是不对称的
如果以单链表表示集合,设集合A用单链表LA表示,集合B用单链表LB表示,设计算法求两个集合的差,即A—B。
已知待排序的n个元素可分为n/k个组,每个组包含k个元素,且任一组内的各元素均分别大于前一组内的所有元素和小于后一组内的所有元素,若采用基于比较的排序,其时间下界应为( )。
已知下列各种初始状态(长度为n)元素,试问当利用直接插入法进行排序时,至少需要进行多少次比较(要求排序后的文件按关键字从大到小顺序排列)?
(1)关键字自小到大有序(key
1
<key
2
<…<key
n
);
(2)关键字自大到小逆序(key
1
>key
2
>…>key
n
);
(3)奇数关键字顺序有序,偶数关键字顺序有序(key
1
<key
3
>…,key
2
<key
4
<…);
(4)前半部分元素按关键字顺序有序,后半部分元素按关键字顺序逆序(key
1
<key
2
<…<key
m
,key
m+1
>key
m+2
>…>key
n
,m为中间位置)。
一个二部图的邻接矩阵A是一个( )类型的矩阵。
设有5个互不相同的元素a,b,c,d,e,能否通过7次比较就将其排好序?如果能,请列出其比较过程;如果不能,则说明原因。
顺序查找法适用于查找顺序存储或链式存储的线性表,平均比较次数为( (1) ),二分法查找只适用于查找顺序存储的有序表,平均比较次数为( (2) )。在此假定Ⅳ为线性表中结点数,且每次查找都是成功的。
现有两栈,其共享空间为V[1.,m],top[i]代表第i个栈(i=1,2)栈顶,栈1的底在V[1],栈2的底在V[m],若两栈均采用顺序存储方式存储,则栈满的条件是( )。
给出折半查找的递归算法,并给出算法时间复杂度分析。
有两个集合A和B,利用带头结点链表表示,设头指针分别为la和lb。两集合的链表元素皆为递增有序。设计一个算法,将A与B合并,合并后仍然保持整个链表中的数据依次递增。不得利用额外的结点空间,只能在A和B的原有结点空间上完成。要求:
适用于折半查找的表的存储方式及元素排列要求为( )。
从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为( )排序法。
已知关键序列5,8,12,19,28,20,15,22是小根堆(最小堆),插入关键字3,调整后得到的小根堆是( )。