//二叉树的算法(非原创)
//输入为字符
#include<stdio.h>
#include<stdlib.h>
#include
using namespace std;
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void PreOrderTraverse(BiTree T)//二叉树的先序遍历
{
if(TNULL)
return ;
printf("%c ",T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
void InOrderTraverse(BiTree T)//二叉树的中序遍历
{
if(TNULL)
return ;
InOrderTraverse(T->lchild);
printf("%c “,T->data);
InOrderTraverse(T->rchild);
}
void PostOrderTraverse(BiTree T)//后序遍历
{
if(TNULL)
return;
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->rchild);
printf("%c “,T->data);
}
void CreateBiTree(BiTree *T)
{
char ch;
scanf(”%c",&ch);
if(ch’#’)
*T=NULL;
else
{
*T=(BiTree)malloc(sizeof(BiTNode));
if(*T==NULL)
return;
(*T)->data=ch;
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
}
int main()
{
BiTree T=NULL;
CreateBiTree(&T);
PreOrderTraverse (T);
cout<<”\n";
InOrderTraverse(T);
cout<<"\n";
PostOrderTraverse(T);
return 0;
}
二叉树的算法
最新推荐文章于 2024-07-13 19:27:27 发布