一:树:
插入 查找 删除dai'代码
//自己实现二叉搜索树的代码
#include <iostream>
using namespace std;
struct node
{
int date;
node* left;
node* right;
};
void insert(node const *T,int date)
{
if(NULL==T)
{
T=new node;
T->date=date;
T->left=NULL;
T->right=NULL;
return ;
}
else
{
if(x<T->date){
insert(T->left,x);
}else{
insert(T->right,x);
}
}
}
bool find(node *T,int date)
{
if(T->date==date)
return true;
if(date>T->date)
find(T->right,date);
if(date<T->date)
find(T->left,date);
return false;
}
node * dele(node *T,int date)
{
if(NULL==T)
return NULL;
else if(x<T->left)
T->left=dele(T->left,date);//T的左子树等于返回值,如果T->left==x,T->left指向变换后的枝
else if(x>T->right)
T->right=dele(T->right,date);
else if(T->left==NULL)
{
node *q=T->right;
delete T;
return q;
}
else if(T->left->right==NULL)
{
node *q=T->left;
delete T;
return q;
}
else
{
node *q;
for(q=T->left;q->right->right!=NULL;q=q->right);
node *r=q->right;
q->right=r->left;
r->left=T->left;
r->right=T->right;
delete T;
return r;
}
return T;
}