#include<stdio.h>
#include<stdlib.h>
typedef struct STree
{
int date;
struct STree *left,*right;
}BSTNode;
int BSTInsert(BSTNode *&bt,int k)
{
BSTNode *f,*p = bt;
while(p != NULL)
{
if(p->date = k)
return 0;
f = p; //f指向*p结点的双亲结点
if(p->date < k)
p = p->right; //在右子树中查找
else
p = p->left; //在左子树中查找
}
p = (BSTNode *)malloc(sizeof(BSTNode));
p->left = p->right = NULL;
p->date = k;
if(bt == NULL)
bt = p; //原树为空时,*P作为根节点插入
else if(k < f->date)
f->left = p; //插入*p作为*f的左孩子
else
f->right = p; //插入*p作为*f的右孩子
return 1;
}
void CreateBST(BSTNode *&bt,int str[],int n)
{
bt = NULL;
int i = 0;
while(i < n)
实现二叉树增删改查
最新推荐文章于 2023-01-19 20:37:21 发布
本文介绍了如何实现二叉搜索树(BST)的基本操作,包括插入节点、创建BST、显示BST和删除节点。通过示例代码详细阐述了每个操作的过程,如在BST中查找指定值的节点,以及在不同情况下删除节点的方法。
摘要由CSDN通过智能技术生成