二叉查找树的查找效率与二叉树的( )有关。
证明:对有向图的顶点适当地编号,可使其邻接矩阵为下三角形且主对角线为全0的充要条件是该图为无环图。
下列关于AOE网的叙述中,不正确的是( )。
关于链表的特点,下面的叙述中不正确的是( )。
写出在二叉排序树中删除一个结点的算法,使删除后仍为二又排序树。设删除结点由指针p所指,其双亲结点由指针f所指,并假设被删除结点是其双亲结点的右孩子。描述上述算法。
树是结点的有限集合,一棵树中有( )根结点。
设哈希表长m=14,哈希函数日(key)=key mod 11。表中已有4个结点addr(15)=4,addr(38)=5,addr(61)=6,addr(84)=7,其余地址为空,如用二次探测再散列法处理冲突,则关键字为49的结点的地址是( )。
已知输入序列为abcd,经过输出受限的双端队列后,能得到的输出序列是( )。
下列排序算法中,在每一趟都能选出一个元素放到其最终位置上,并且其时间性能受数据初始特性影响的是( )。
折半查找的时间复杂性为( )。
已知一棵树的结点表示如下,其中各兄弟结点是依次出现的,画出对应的二叉树。
关于图(Graph)的一些问题: (1)有n个顶点的有向强连通图最多有多少条边?最少有多少条边? (2)表示有1 000个顶点、1 000条边的有向图的邻接矩阵有多少个矩阵元素?是否为稀疏矩阵?
如图所示的T2是由森林T1转换而来的二叉树,那么森林T1有()个叶结点。
下面的算法实现的是带附加头结点的单链表数据结点逆序连接,空缺处应当填入( )。 void reverse(pointer h){ //h为附加头结点指针pointer p,q; P=h一>next;h一>next=NULL; while(P|=null){ q=P: P=P一>next: q一>next=h一>next; h一>next=(_____); } }
假定图G=(V,E)是有向图,V={1,2,…,N},N≥1,G以邻接矩阵方式存储,G的邻接矩阵为A,即A是一个二维数组。如果i到j有边,则A[i,j]=1,否则A[i,j]=0。请给出一个算法思想,该算法能判断G是否是非循环图(即G中是否存在回路),要求算法的时间复杂性为O(n
2
)。
某二叉树的先序遍历序列为IJKLMNO,中序遍历序列为JLKINMO,则后序遍历序列是( )。
写一个HeapInsert(R,key)算法,将关键字插入到堆R中,并保证插入后R仍是堆。请分析算法的时间复杂度。提示:将key先插入R中已有元素的尾部(即原堆的长度加1的位置,插入后堆的长度加1),然后自下往上调整,使插入的关键字满足堆性质。
判断有向图是否存在回路,除了可以利用拓扑排序方法外,还可以利用的是( )。
B单项选择题1-40小题。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。/B
有一种简单的排序算法,叫做计数排序(Count sorting)。这种排序算法对一个待排序的表(用数组表示)进行排序,并将排序结果存放到另一个新的表中。必须注意的是,表中所有待排序的关键字互不相同,计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键字比该记录的关键字小。假设针对某一个记录,统计出的计数值为c,那么,这个记录在新的有序表中的合适的存放位置即为c。 设计实现计数排序的算法。对于有n个记录的表,关键字的比较次数是多少?与简单选择排序相比较,这种方法是否更好?为什么?