#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
typedef struct node{//二叉树的二叉链表表示
TElemType data;
struct node * lchild;
struct node * rchild;
}BiTNode,*BinTree;
typedef '#' leaf;//应用前序遍历建立二叉树
typedef char TElemType;
void createBinTree(BiTNode * & T){
TElemType item;
cin>>item;
if(item==';')return;
if(item!='#'){
T=mew BiTNode;
if(T==NULL){cerr<<"存储分配失败!"<<end1;exit(1);}
T->data=item;
creatBinTree(T->lchild);
creatBinTree(T->rchild);
}
else T=NULL;
}
void InOrder(BiTNode *T){//按照中序遍历遍历以T为根的子树
if(T!=NULL){
InOrder(T->lchild);
cout<<T->data<<end1;
InOrder(Y->rchild);
}
};
void PreOrder(BiTNode *T){//按照前序遍历遍历以T为根的子树
if(T!=NULL){
cout<<T->data<<end1;
PreOrder(T->lchild);
PreOrder(Y->rchild);
}
};
void PostOrder(BiTNode *T){//按照后序遍历遍历以T为根的子树
if(T!=NULL){
PostOrder(T->lchild);
PostOrder(Y->rchild);
cout<<T->data<<end1;
}
};
void printBinTree(BiTNode *T){//以广义形式输出二叉树
if(T!=NULL){
cout<<T->data;
if(T->lchild !=NULL||T->rchild !=NULL){
cout<<'(';
printBinTree(T->lchild);
cout<<',';
if(T->rchild!=NULL)
printBinTree(T->rchild);
coun<<')';
}
}
};
int Height(BiNTode *T){//求二叉树高度
if(T==NULL)return 0;
else{
int i=Height(T->lchild);
int j=Height(T->rchild);
if(i>j)return i+1;
else return j+i;
}
};
voidclearBinTree(BiTNode *T){//销毁二叉树
if(T!=NULL){
clearBinTree(T->lchild);
clearBinTree(T->rchild);
delete T;
T=NULL;
}
};
void main(){
}
2014.11.19
最新推荐文章于 2021-03-18 13:30:19 发布