、建立一颗二叉树,并分别按先序、中序和后序遍历这棵二叉树,要求以二叉链表作为存储结构

2024-11-15 17:55:33
推荐回答(1个)
回答(1):

#include
#include
using namespace std;
#define MAXSIZE 100

typedef struct BiNode
{
char data;
struct BiNode *lchild,*rchild;
}BiNode,*BiTree;

void Create(BiTree &T)//用先序遍历的顺序建立二叉链表(递归方法)
{
char ch;
cin>>ch;
if(ch=='#')
T=NULL;
else
{
T=new BiNode;
T->data=ch;
Create(T->lchild);
Create(T->rchild);
}
}

void PreOrder(BiTree &T)//先序遍历二叉树(递归)
{
if(T)
{
cout<data<<" ";
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}

void InOrder(BiTree &T)//中序遍历二叉树(递归)
{
if(T)
{
InOrder(T->lchild);
cout<data<<" ";
InOrder(T->rchild);
}
}

void PostOrder(BiTree &T)//后序遍历二叉树(递归)
{
if(T)
{
PostOrder(T->lchild);
PostOrder(T->rchild);
cout<data<<" ";
}
}
望采纳~~~