二叉排序树
例3.5 二叉排序树
代码3.5
#include<iostream>
using namespace std;
struct Node{
Node *lchild;
Node *rchild;
int i;
}tree[105];
int loc;
Node *create(){
tree[loc].lchild = tree[loc].rchild = NULL;
return &tree[loc++];
}
void preOrder(Node *T){
cout << T -> i << " " ;
if(T -> lchild != NULL)
preOrder(T -> lchild);
if(T -> rchild != NULL)
preOrder(T -> rchild);
}
void inOrder(Node *T){
if(T -> lchild != NULL)
inOrder(T -> lchild);
cout << T -> i << " " ;
if(T -> rchild != NULL)
inOrder(T -> rchild);
}
void postOrder(Node *T){
if(T -> lchild != NULL)
postOrder(T -> lchild);
if(T -> rchild != NULL)
postOrder(T -> rchild);
cout << T -> i << " " ;
}
Node *insert(Node *T,int x){
if(T == NULL){
T = create();
T -&