问答题

已知二叉树排序树中某结点指针p,其双亲结点指针为fp,p为fp的左孩子。试编写算法,删除p所指结点。

答案: 正确答案:本题用被删结点右子树中最小值(中序遍历第一个)结点代替被删结点。 void Delete(BSTree bst...
题目列表

你可能感兴趣的试题

问答题

请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink—rlink法存储。

答案: 正确答案:根据二叉排序树中序遍历所得结点值为增序的性质,在遍历中将当前遍历结点与其前驱结点值比较,即可得出结论,为此设全...
问答题

写出在二叉排序树中删除一个结点的算法,使删除后仍为二叉排序树。设删除结点由指针p所指,其双亲结点由指针f所指,并假设被删除结点是其双亲结点的右孩子。描述上述算法。

答案: 正确答案:void Delete(BSTree t,P){ //在二叉排序树t中,删除f所指结点的右孩子(由P所指向) ...
问答题

已知二叉树排序树中某结点指针p,其双亲结点指针为fp,p为fp的左孩子。试编写算法,删除p所指结点。

答案: 正确答案:本题用被删结点右子树中最小值(中序遍历第一个)结点代替被删结点。 void Delete(BSTree bst...
问答题

二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注意:可不考虑被删除的结点是根的情况)。

答案: 正确答案:在二叉排序树上删除结点,首先要查找该结点。查找成功后,若该结点无左子树,则可直接将其右子树的根结点接到其双亲结...
问答题

给出折半查找的递归算法,并给出算法时间复杂度分析。

答案: 正确答案:int BinSrch(rectype r[],int k,low,high){ //在长为n的有序表中查找关...
问答题

写出从哈希表中删除关键字为K的一个记录的算法。设哈希函数为H,解决冲突的方法为链地址法。

答案: 正确答案:用链地址法解决冲突的哈希表是一个指针数组,数组分量均是指向单链表的指针,(第i个)单链表结点有两个域,一个是哈...
问答题

用C语言或PASCAL编写一用链接表(Linked List)解决冲突的哈希表插入函数。

答案: 正确答案:本题仍用上面已定义的存储结构。首先计算关键字K的哈希地址,若该哈希地址的头指针为空,则直接插入;否则,先在该链...
问答题

在用除余法作为散列函数线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不至于断裂。

答案: 正确答案:首先计算关键字的散列地址,若该地址为空,则空操作;若该地址有关键字,但与给定值不等,则用解决冲突的方法去查找给...
问答题

设排序二叉树中结点的结构由三个域构成:数据域data,指向左儿子结点的指针域left,指向右儿子结点的指针域right。设data域为正整数,该二叉树树根结点地址为T。现给出一个正整数x。请编写非递归程序,实现将data域的值小于等于x的结点全部删除。

答案: 正确答案:利用二叉排序树的性质,从根结点开始查找,若根结点的值小于等于x,则根结点及其左子树均应删除,然后以右子树的根结...
问答题

假设一棵平衡二叉树的每个结点都标明了平衡因子b,试设计一个算法,求平衡二叉树的高度。

答案: 正确答案:因为二叉树各结点已标明了平衡因子b,故从根结点开始记树的层次。根结点的层次为1,每下一层,层次加1,直到层数最...
问答题

设从键盘输入一个整数的序列:n,a 1 ,a 2 ,…,a n ,其中n表示连续输入整数的个数。 (1)试编写一程序按整数值建立一个二叉排序树。 (2)在(1)的基础上将此二叉树上的各整数按降序写入一磁盘文件中。

答案: 正确答案:二叉排序树的建立问题前面第3题的(1)中已介绍,此处不再赘述。将二叉排序树上的各整数按降序写入磁盘,要对二叉排...
问答题

设二叉排序树的各元素值均不相同,采用二叉链表作为存储结构,试分别设计递归和非递归算法按递减序打印所有左子树为空、右子树非空的结点的数据域的值。

答案: 正确答案:(1)递归算法 void DecPrint(BSTree t){ //递减序输出二叉排序树t中所有左子树为空、...
微信扫码免费搜题