#include<stdio.h>
#include<stdlib.h>
#include < iostream>
using namespace std;
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OVERFLOW -2
#define OK 1
#define ERROR 0
typedef int status;
typedef char ElemType;
typedef struct BTNode
{
ElemType data;
struct BTNode *lchild;
struct BTNode *rchild;
}BTNode,*BTree;
void Createtree(BTree &T)
{
char ch;
cin>>ch;
if(ch=='#')
T=NULL;
else
{
T=(BTree)malloc(sizeof(BTNode));
T->data=ch;
Createtree(T->lchild);
Createtree(T->rchild);
}
}
void PreorderTree(BTree T)
{
if(T)
{
cout<<T->data<<" ";
PreorderTree(T->lchild);
PreorderTree(T->rchild);
}
}
void InorderTree(BTree T)
{
if(T)
{
InorderTree(T->lchild);
cout<<T->data<<" ";
InorderTree(T->rchild);
}
}
void PostorderTree(BTree T)
{
if(T)
{
PostorderTree(T->lchild);
PostorderTree(T->rchild);
cout<<T->data<<" ";
}
}
void DestoryTree(BTree &T)
{
if(T)
{
DestoryTree(T->lchild);
DestoryTree(T->rchild);
free(T);
T=NULL;
}
}
int main()
{
BTree T;
Createtree(T);
PreorderTree(T);
cout<<endl;
InorderTree(T);
cout<<endl;
PostorderTree(T);
cout<<endl;
DestoryTree(T);
PreorderTree(T);
return 0;
}
二叉树的简单建立,遍历和删除
最新推荐文章于 2019-12-27 07:33:39 发布