【发布时间】:2013-04-30 05:30:19
【问题描述】:
尝试在网上进行了很多探索,但可以得到任何帮助, 到处都像是在二叉搜索树中添加一个节点。
问题:请求向二叉树添加节点的算法和代码sn-p。 (或指出我正确的网址)
假设: 据我了解,二叉树和二叉搜索树有什么不同?如果我错了,请纠正我。
(请求:如果您正在编写代码 sn-p,请使用正确的变量名,这有助于理解)
例如:二叉树
5 7 3 x1 x2 x3
5
7 3
x1 x2 x3
二叉搜索树 5 7 3 2 4 6
5
3 7
2 4 6
insert(int key, struct node **root)
{
if( NULL == *root )`
{
*root = (struct node*) malloc( sizeof( struct node ) );`
(*root)->data = key;
(*root)->left = NULL;
(*root)->right = NULL;
}
else if(key < (*root)->data)
{
insert( key, &(*root)->left );
}
else if(key > (*root)->data)
{
insert( key, &(*root)->right );
}
}
【问题讨论】:
-
如果你在谈论二叉搜索树并且你正在尝试做一些 instertion,也许这会有所帮助?:en.wikipedia.org/wiki/Binary_search_tree#Insertion
-
错误的二叉搜索树
-
@AbdullahShoaib 告诉我 BST 的正确顺序是什么。
-
@Cleaner :给定链接上的 insertHelper() 还会检查值 key ,因为二叉树不应该打扰值是小还是大。如果下一个节点可用,它应该继续并将下一个节点放在左边,否则放在右边。我希望您了解二叉树和二叉搜索树之间的区别是什么?据此你认为它正确吗。
-
@wildplasser:是的,它是一个 BST,我正在寻找二叉树.. 没有得到一个算法来做同样的事情
标签: c tree binary-tree binary-search-tree