首 页
界面/窗口
网络/通讯
数据库
组件开发
图像/多媒体
NET/Web
其它技术
源码下载
资料下载
软件共享
软件外包
曲艺杂谈
栏目导航:
首 页
|
其它技术
|
算法与数据结构
二叉查找树(BST)---删除节点
原作者:fertiland 源出处:CSDN 发布者:
施昌权
发布类型:转载 发布日期:2008-12-01
TreeNode* min_node(TreeNode *t)
...
{
if (t == NULL)
...
{
return NULL;
}
if (t->left != NULL)
...
{
return min_node(t->left);
}
else
...
{
return t;
}
}
void rem_node(int value, TreeNode *&t)
...
{
if (value < t->value)
...
{
rem_node(value, t->left);
}
else if ( value > t->value)
...
{
rem_node(value, t->right);
}
else if (t->left != NULL && t->right != NULL)
...
{//左子树非空,右子树非空
TreeNode *tmp = min_node(t->right);
t->value = tmp->value;
rem_node(tmp->value, tmp);
}
else
...
{
TreeNode *tmp = t;
if (t->left == NULL )
...
{
t = t->right;
}
else
...
{
t = t->left;
}
free(tmp);
tmp = NULL;
}
}
注意删除节点时,需要修改指针,并且保存这种修改,在C语言考虑使用二级指针,C++提供界面更友好且实现相同功能引用(实现自引用的指针常量)。
关于我们
版权声明
广告服务
联系我们
友情链接
加入收藏
站长:
施昌权
Email:
scq2099yt@163.com
MSN:scq2099yt@live.cn QQ:14046300 本站QQ群:67202409
Copyright © 2008
卓为VC(www.joyvc.cn)
All Rights Reserved 建议分辨率 1024×768
本站由
施昌权
制作维护
京ICP备09012297号