接受的答案可以制作一个完美的树(这也是一个完整的树)。虽然它不能在不完美的情况下制作一个完整的树。不过,这是对我的要求最接近的答案。为了让竞争变得不完美,您可以移除树最右边的叶子。1.问题:试图将 aBinary Search Tree变成Complete Binary Search Tree. 我可以找到很多 a 的代码示例Complete Binary Tree,但没有Complete Binary Search Tree。插入作为二叉搜索树应该工作。但是这种插入方式并不是完全树。如果我添加一堆随机数,它不会是一个完整的树。我怎样才能使代码插入到树,但同时是一个完整的二叉搜索树?我将不胜感激代码示例。我觉得从理论上理解它一点也不难,但很难用代码实现它。2. 我试过的:以层级顺序添加节点。While 循环“只要高度不是 6 就插入,并且除叶子之外的所有节点都是完整节点”。“如果值大于父级且左子级不为空,则仅添加到右子级”。Arrays并LinkedLists添加自。3.我如何插入:private BinaryNode<AnyType> insert( AnyType x, BinaryNode<AnyType> t ){ if( t == null ) return new BinaryNode<>( x, null, null); int compareResult = x.compareTo( t.element ); if (compareResult < 0) t.left = insert(x, t.left); else if (compareResult > 0) t.right = insert(x, t.right); else ; // Duplicate; do nothing return t;}的AnyType是将被插入的值,则BinaryNode是当前节点。4. 程序能做什么:插入和移除。查找高度、最小值、最大值或特定节点。Preorder、Postorder、Levelorder 和 Inorder 搜索。获取完整节点数、所有节点数和叶子数。
添加回答
举报
0/150
提交
取消