当采用分块查找时,数据的组织方式为( )。
设从键盘输入一个整数的序列:n,a
1
,a
2
,…,a
n
,其中n表示连续输入整数的个数。
下列( )是一个堆。
有n个顶点e条边的无向图,采用邻接表存储时,有( )个表头结点,有( )个链表结点。
试设计一算法,使得在尽可能少的时间内重排数组,将所有取负值的关键字放在所有取非负值的关键字之前,并分析算法的时间复杂度。
冒泡排序方法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)。请给出上浮和下沉过程交替的冒泡排序算法。
在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。
有()棵不同的二叉树,其结点的前序序列为a1,a2,…,an。
为了增加内存空间的利用率和减少溢出的可能性,两个栈可以共享一片连续的内存空间,此时应将两栈的栈底分别设在( )。
已知深度为h的二叉树采用顺序存储结构已存放于数组BT[1..2
h
一1]中,请写一非递归算法,产生该二叉树的二叉链表结构。设二叉链表中链结点的构造为(lchild,data,rchild),根结点所在链结点的指针由T给出。
B综合应用题41-47小题。/B
假设K
1
,…,K
n
是n个关键词,试解答:
(1)试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为K
1
,K
2
,…,K
n
时,用算法建立一棵以LLINK—RIJNK链接表示的二叉查找树。
(2)设计一个算法,打印出该二叉查找树的嵌套括号表示结构。假定该二叉查找树的嵌套括号表示结构为B(A,D(C,E))。
判断线索二叉树中某结点*p有左孩子的条件是( )。
在单链表指针为P的结点之后插入指针为s的结点,正确的操作是( )。
若G是一个具有36条边的非连通无向图(不含自回路和多重边),则图G的结点数至少是( )。
下面关于m阶B树的说法中,正确的是( )。 ①每个结点至少有两棵非空子树。 ②树中每个结点至多有m-1个关键字。 ③所有叶子在同一层上。 ④当插入一个数据项引起B树结点分裂后,树长高一层。
判断有向图是否存在回路,除了可以利用拓扑排序方法外,还可以利用的是( )。
为了增加内存空间的利用率和减少溢出的可能性,通常采用两个栈利用同一块存储空间的方法。通常两个栈的栈底设在内存空间的两端,而栈顶相向,迎面增长。已知有两个栈s1、s2都采用顺序栈方式,并且共享一个存储区[0~maxsize—1]。 设计共享存储空间的两个栈s1、s2的入栈和出栈算法。要求:
假设用于通信的电文由字符集{a,b,c,d,e,f,g,h}中的字母构成,这8个字母在电文中出现的概率分别为{0.07,0.19,0.02,0.06,0_32,0.03,0.21,0.10}。 (1)为这8个字母设计哈夫曼编码。 (2)若用三位二进制数(0~7)对这8个字母进行等长编码,则哈夫曼编码的平均码长是等长编码的百分之几?它使电文总长平均压缩多少?
有一个有序表{1,3,9,12,32,41,45,62,75,77,82,95,100},当用二分查找法查找值为82的结点时,经( )次比较后查找成功。