有n个叶子结点的哈夫曼树的结点总数为( )。
构建一个哈夫曼树,如果给定权值的个数为n,那么哈夫曼树的结点总数为( )。
设排序二叉树中结点的结构由三个域构成:数据域data,指向左儿子结点的指针域left,指向右儿子结点的指针域right。设data域为正整数,该二叉树树根结点地址为T。现给出一个正整数x。请编写非递归程序,实现将data域的值小于等于x的结点全部删除。
如图所示的T2是由森林T1转换而来的二又树,那么森林T1有()个叶结点。
设记录R
1
,R
2
,…,R
n
按关键字值从小到大顺序存储在数组r[1..n]中,在r[n+1]处设立一个监督哨,其关键字值为+∞。试写一查找给定关键字k的算法,并画出此查找过程的判定树,求出在等概率情况下查找成功时的平均查找长度。
有一个不带头结点的单链表list,链表中结点都有两个域:数据域data和指针域Iink。已知初始时该单链表无序,请设计一个算法将该链表按结点数据域的值的大小,将其从小到大依次重新链接,在链接过程中不得使用除该链表以外的任何链结点空间。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
下列4组含C1—C7的结点序列中,()是下图所示的有向图的拓扑序列。
已知关键字序列(K
1
,K
2
,K
3
,…,K
n-1
)是大根堆。试写出一算法将(K
1
,K
2
,K
3
,…,K
n-1
,K
n
)调整为大根堆,并利用调整算法写一个建大根堆的算法。
在一个( )图中寻找拓扑序列的过程称为( )。
设从键盘输入一个整数的序列:n,a
1
,a
2
,…,a
n
,其中n表示连续输入整数的个数。
(1)试编写一程序按整数值建立一个二叉排序树。
(2)在(1)的基础上将此二叉树上的各整数按降序写入一磁盘文件中。
下面关于m阶B树的说法中,正确的是( )。 ①每个结点至少有两棵非空子树。 ②树中每个结点至多有m-1个关键字。 ③所有叶子在同一层上。 ④当插入一个数据项引起B树结点分裂后,树长高一层。
下列内部排序算法中,其比较次数(或交换次数)与序列初态无关的算法是( )。
以下关于十字链表的说法中,不正确的是( )。
假设一个序列1,2,3,…,n依次进栈,如果出栈的第一个元素是n,那么第i(1≤i≤n)个出栈的元素是( )。
以下叙述中正确的是( )。 I.对有向图G,如果以任一顶点出发进行一次深度优先或广度优先搜索能访问到每个顶点,则该图一定是完全图Ⅱ.连通图的广度优先搜索中一般要采用队列来暂存访问过的顶点Ⅲ.图的深度优先搜索中一般要采用栈来暂存访问过的顶点
m阶B一树是一棵( )。
现有两栈,其共享空间为V[1..m],top[i]代表第i个栈(i=1,2)栈项,栈1的底在V[1],栈2的底在V[m],若两栈均采用顺序存储方式存储,则栈满的条件是( )。
试构造对5个元素进行排序,最多只用7次比较的算法。
下列内部排序算法中,在初始序列已基本有序(除去n个元素中的某k个元素后即呈有序,k<<n)的情况下,排序效率最高的算法是( )。
对初始状态为递增序列的表按递增顺序排序,最省时间的是( (1) )算法,最费时间的是( (2) )算法。