Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在BST的边缘查找节点_C++_Binary Search Tree - Fatal编程技术网

C++ 在BST的边缘查找节点

C++ 在BST的边缘查找节点,c++,binary-search-tree,C++,Binary Search Tree,BST边缘的节点是节点:在同一级别节点中具有最大/最小键的节点。(排除根节点和叶节点) 我正在考虑使用堆栈来存储节点的键。但似乎我在弹出和比较以找到最大/最小的方面遇到了麻烦。你能帮我想出更好的解决办法吗 执行级别顺序遍历(使用队列) 每次您退出队列时,针对您所处的级别,检查它是您迄今为止记录的最小值还是最大值 在检查最小值和最大值时,请确保root没有同时将root.left和root.right设置为NULL我相信它们位于图形边缘。@Aszune'sHeart是的,它们是图形化的。我不理解这

BST边缘的节点是节点:在同一级别节点中具有最大/最小键的节点。(排除根节点和叶节点)


我正在考虑使用堆栈来存储节点的键。但似乎我在弹出和比较以找到最大/最小的方面遇到了麻烦。你能帮我想出更好的解决办法吗

执行级别顺序遍历(使用队列)

每次您退出队列时,针对您所处的级别,检查它是您迄今为止记录的最小值还是最大值


在检查最小值和最大值时,请确保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)