博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉搜索树c++版
阅读量:4030 次
发布时间:2019-05-24

本文共 2691 字,大约阅读时间需要 8 分钟。

#include
using namespace std;const int MAX=1000;typedef struct NODE{
int data; struct NODE *left; struct NODE *right;} NODE,*TREE;TREE build(TREE tree,int x){
if(!tree) {
tree=(NODE*)malloc(sizeof(NODE)); tree->data=x; tree->left=NULL; tree->right=NULL; } else if(tree->data>x) tree->left=build(tree->left,x); else tree->right=build(tree->right,x); return tree;}bool judge(TREE base_tree,TREE tree){
if(base_tree==NULL&&tree==NULL) return true; else if(base_tree==NULL&&tree!=NULL) return false; else if(base_tree!=NULL&&tree==NULL) return false; else {
if(base_tree->data==tree->data) return judge(base_tree->left,tree->left)&&judge(base_tree->right,tree->right); return false; }}bool find(TREE T,int x,TREE father,TREE &p){
if(!T) {
p=f; return false; } if(T->data==x) {
p=t; return true; } else if(x
data) return find(T->left,x,T,p); else return find(T->right,x,T,p);}bool insert(TREE T,int x){
TREE p; if(!find(T,x,NULL,p)) {
NODE *a=(NODE*)malloc(sizeof(NODE)); a->data=x; a->right=a->left=NULL; if(!p) T=a; else if(x
data) p->left=s; else p->right=s; return true; } return false;}bool Delete(TREE &p){
NODE *q,*s; if(!p->right) {
q=p; p=p->left; free(q); } else if(!p->left) {
q=p; p=p->right; free(q); } else {
q=p; s=p->left; while(s->right) {
q=s; s=s->right; } p->data=s->data; if(q!=p) q->right=s->left; else q->left=s->left; //p->left=s->left;相等 delete s; } return true;}bool DeleteTree(TREE &T,int x){
if(!T) return false; else {
if(x==T->data) return Delete(T); else if(x
data) return DeleteTree(T->left); else return DeleteTree(T->right); }}int main(){
//freopen("in.txt","r",stdin); int n,l; int a[MAX]; cin>>n;//节点个数 TREE base_tree=NULL; for(int i=0; i
>a[i]; base_tree=build(base_tree,a[i]); } cout<<"二叉搜索树建立完成,结点个数为:"<
<
>n;//插入节点个数 for(int i=0;i
>a[i]; if(insert(base_tree,a[i])) cout<<"节点"<
<<"插入成功"<
>n;//删除节点个数 for(int i=0;i
>a[i]; if(insert(base_tree,a[i])) cout<<"节点"<
<<"删除成功"<

每天进步一点点,十天进步十点点

更多模板和PTA题目到我的博客里参考

转载地址:http://vmqbi.baihongyu.com/

你可能感兴趣的文章
利用清华镜像站解决pip超时问题
查看>>
[leetcode BY python]1两数之和
查看>>
微信小程序开发全线记录
查看>>
Centos import torchvision 出现 No module named ‘_lzma‘
查看>>
Maximum Subsequence Sum
查看>>
PTA:一元多项式的加乘运算
查看>>
CCF 分蛋糕
查看>>
解决python2.7中UnicodeEncodeError
查看>>
小谈python 输出
查看>>
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
查看>>
python:如何将excel文件转化成CSV格式
查看>>
Django 的Error: [Errno 10013]错误
查看>>
机器学习实战之决策树(一)
查看>>
[LeetCode By Python] 2 Add Two Number
查看>>
python 中的 if __name__=='__main__' 作用
查看>>
机器学习实战之决策树二
查看>>
[LeetCode By Python]7 Reverse Integer
查看>>
[LeetCode By Python]9. Palindrome Number
查看>>
[leetCode By Python] 14. Longest Common Prefix
查看>>
[LeetCode By Python]107. Binary Tree Level Order Traversal II
查看>>