#include<iostream>
#include<stdlib.h>
using namespace std;
typedef char TElemType;
//二叉树的存储结构
typedef struct BiTNode
{
TElemType data;
struct BiTNode *lchild,*rchild;
} BiTNode,*BiTree;
//建立二叉树
void CreateBiTree(BiTree *T)
{
TElemType ch;
cin>>ch;
if(ch=='#')
*T=NULL;
else
{
*T=(BiTree)malloc(sizeof(BiTNode));
(*T)->data=ch;
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
}
//前序遍历
void PreOrderTraverse(BiTree T)
{
if(T!=NULL)
{
cout<<T->data;
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
return;
}
//中序遍历
void InOrderTraverse(BiTree T)
{
if(T!=NULL)
{
PreOrderTraverse(T->lchild);
cout<<T->data;
PreOrderTraverse(T->rchild);
}
return;
}
//后序遍历
void PostOrderTraverse(BiTree T)
{
if(T!=NULL)
{
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
cout<<T->data;
}
return;
}
int main()
{
BiTree t;
CreateBiTree(&t);
PreOrderTraverse(t);
cout<<endl;
InOrderTraverse(t);
cout<<endl;
PostOrderTraverse(t);
}
数据结构那点事--二叉树
最新推荐文章于 2024-10-16 19:19:52 发布