一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是( )。
已知有向图G=(V,A),其中V={a,b,c,d,e},A={,,,,,}。对该图进行拓扑排序,下面序列中不是拓扑排序的是( )。
在线索二叉树中,结点*p没有左子树的充要条件是( )。
如果线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。
在图中所示的4棵二叉树中,()不是完全二叉树。
G=(V,E)是一个带有权的连通图,如图所示。(1)什么是G的最小生成树?(2)G如图所示,请找出G的所有最小生成树。
下述编码中,哪一组不是前缀码? {00,01,10,11},{0,1,00,11},{0,10,110,111}
已知一棵二叉树,共有n个结点,那么此二叉树的高度为( )。
在执行某种排序算法的过程中出现了排序码朝着最终排序序列相反的方向移动,从而认为该排序算法是不稳定的,这种说法对吗?为什么?
若对有18个元素的有序表做二分查找,则查找A[3]的比较序列的下标为( )。
将十进制的关键字用二进制数表示,对基数排序所需的时间和附设空间分别有什么影响?各是多少?
试找出分别满足下面条件的所有二叉树:
当各边上的权值( )时,BFS算法可用来解决单源最短路径问题。
已知有一维数组A[0,.m×n一1],若要对应为m行、n列的矩阵,将元素A[k](0≤k<m×n)表示成矩阵的第i行、第j列的元素(0≤i
写一个HeapInsert(R,key)算法,将关键字插入到堆R中,并保证插入后R仍是堆。请分析算法的时间复杂度。提示:将key先插入R中已有元素的尾部(即原堆的长度加1的位置,插入后堆的长度加1),然后自下往上调整,使插入的关键字满足堆性质。
采用简单选择排序,比较次数与移动次数分别为( )。
无向图G有23条边,度为4的顶点有5个,度为3的顶点有4个,其余都是度为2的顶点,则图G最多有( )个顶点。
假设以I和O分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。 (1)下面所示的序列中哪些是合法的? A.IOIIOIOO B.IOOIOIIO C.IIIOIOIO D.IIIOOIOO (2)通过对(1)的分析,写出一个算法,判定所给的操作序列是否合法。若合法,返回true,否则返回false(假定被判定的操作序列已存入一维数组中)。
如果T1是由有序树T转换而来的二叉树,那么T中结点的前序遍历序列就是T1中结点的( )遍历序列。
已知一个带有头结点的单链表L,其结点结构由两部分组成:数据域data,指针域link。设计一个算法,以最高效的方法实现在单链表中删除数据域最小值结点。要求:(1)给出算法的基本设计思想。(2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。