二叉排序树
2021-02-11 21:20
标签:rtb create ebs 建立 alt null == new src typedef struct node{ SearchBST(BSTNode *T,KeyType K) SearchBST(BSTNode *T,KeyType k) int InsertBST(BSTNode *T,KeyType k) int InsertBST(BSTNode *T,KeyType k) BSTNode Creat(int n) BSTNode Creat(int n) 注意点: 二叉排序树 标签:rtb create ebs 建立 alt null == new src 原文地址:https://www.cnblogs.com/t----j/p/12733971.html一.二叉排序树的结点类型
KeyType key;
struct node lchild,rchild;
}BSTNode;
typedef int KeyType;二.SearchBST(T, key)
1.伪代码
{
if(T为空||T的Key等于K){
Return T;
}
if(T的Key小于K){
Return searchBST(T的右孩子,K);
}else{
Return searchBST(T的左孩子,K);
}
}2.代码
{
if(T == NULL||T->key == K){
return T;
}
if(T->key
}else{
return searchBST(T->lchild, K);
}
}三.InsertBST(T, key)
1.伪代码
{
if(T为空){
建立一个新结点K;
T的Key等于K;
T的左右孩子都为空;
return 1;
}
if(T的Key等于K){
return 0;
}
if(T的Key
}else{
return InsertBST(T的左孩子,K);
}
}2.代码
{
if(T == NULL){
T= new BSTNode;
T->key = k;
T->lchild=NULL;
T->rchild=NULL;
return 1;
}
if(T->key==K){
return 0;
}
if(T->Key
}else{
return InsertBST(T->lchild,K);
}
}四.CreateBST(T)
1.伪代码
{
建立一个为空的头指针;
循环着插入结点;
return T;
}2.代码
{
BSTNode T=NULL;
int i,a;
for(i=0;i
insertBST(T,a);
}
return T;
}五.DeleteBST(T, key)
1.树是否为空
2.T->key
4.删除结点并不是单纯的删除,而是用别的“东西”来替代原本的结点。
上一篇:C#多线程(8):线程完成数
下一篇:springboot公开课随笔