二叉树排序的实现
- (1) SearchBST(T, key)伪代码:
SearchBST(T, key) {
if (T为空) {
return 0;
}
else
{
if (key < T->data) {
向T的左孩子查找;
}
else {
向T的有孩子查找;
}
}
return T;
}
(2)SearchBST(T, key)实现代码:
SearchBST(T, key) {
if (T==NULL) {
return 0;
}
else {
if (key < T->data) {
T = T->lchild;
}
else {
T = T->rchild;
}
}
return T;
}
- (1) InsertBST(T, key)伪代码:
void InsertBST(BiTree T, int key) {
BiTree p;
为插入p节点创建结点空间;
p->data = key;
令p->lchild = p->rchild = NULL;
if (T为空) {
T = p;
}
else {
if (T->data == p->data) {
return;
}
else if (p->data< T->data) {
将key插入到T的左孩子;
}
else {
将key插入到T的右孩子;
}
}
(2) InsertBST(T, key)实现代码:
viod InsertBST(BiTree T,int key) {
BiTree p = new BiTNode;
p->data = key;
p->lchild = p->rchild = NULL;
if (T == NULL) {
T = p;
}
else {
if (T->data == p->data) {
return;
}
else if (p->data < T->data) {
InsertBST(T->lchild, key);
}
else {
InsertBST(T->rchild,key);
}
}
}
- (1) CreateBST(T)的伪代码:
void CreateBST(BiTree T) {
令树为空
int i;
for (i = 0; i < MaxSize; i++) {
输入建树数据a;
插入二叉树T;
}
return T;
}
(2) CreateBST(T)的实现代码:
void CreateBST(BiTree T) {
T = NULL;
int i;
for (i = 0; i < MaxSize; i++) {
int a;
cin >> " " >> a;
InsertBST(T, a);
}
return T;
}
** 注意事项:
若删除节点并要返回删除后的树:删除之前首先应该判断该结点的类型。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现