C++ 在BST的边缘查找节点
BST边缘的节点是节点:在同一级别节点中具有最大/最小键的节点。(排除根节点和叶节点)C++ 在BST的边缘查找节点,c++,binary-search-tree,C++,Binary Search Tree,BST边缘的节点是节点:在同一级别节点中具有最大/最小键的节点。(排除根节点和叶节点) 我正在考虑使用堆栈来存储节点的键。但似乎我在弹出和比较以找到最大/最小的方面遇到了麻烦。你能帮我想出更好的解决办法吗 执行级别顺序遍历(使用队列) 每次您退出队列时,针对您所处的级别,检查它是您迄今为止记录的最小值还是最大值 在检查最小值和最大值时,请确保root没有同时将root.left和root.right设置为NULL我相信它们位于图形边缘。@Aszune'sHeart是的,它们是图形化的。我不理解这
我正在考虑使用堆栈来存储节点的键。但似乎我在弹出和比较以找到最大/最小的方面遇到了麻烦。你能帮我想出更好的解决办法吗 执行级别顺序遍历(使用队列) 每次您退出队列时,针对您所处的级别,检查它是您迄今为止记录的最小值还是最大值
在检查最小值和最大值时,请确保root没有同时将root.left和root.right设置为NULL我相信它们位于图形边缘。@Aszune'sHeart是的,它们是图形化的。我不理解这个问题,这是直截了当的。因此,这将取决于你在提取节点之后要做的事情。@ Anmail,它们将按它们的键的升序逐个删除。如果你想节省空间,考虑使用一个没有链接字段的叶节点类。我用我的栈和你的相同的解决方法解决了。顺便谢谢你。
> Suppose we already have a BST like this:
--------5--------
-4-- -8---
-1- -3- -N-10-
-2-N- -9--N-
So the nodes we need to find: 4,8,10 (don't use array/string)