这段代码是一个二叉树的先序、中序和后序遍历的实现。在其中使用了递归方法来构建二叉树,并分别实现了先序、中序和后序遍历函数。
以下是完整的代码:
#include<iostream>
#include<string.h>
using namespace std;
int flag;
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree &T,char S[],int &i)
{//先序建立二叉树
if(S[i]=='0')
T=NULL;
else
{
T=new BiTNode;
T->data=S[i];
CreateBiTree(T->lchild,S,++i);
CreateBiTree(T->rchild,S,++i);
}
}
void PreOrderTraverse(BiTree T)
{//二叉树的先序遍历
if(T)
{
cout<<T->data<<" ";
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
}
void InOrderTraverse(BiTree T)
{//二叉树的中序遍历
if(T)
{
InOrderTraverse(T->lchild);
cout<<T->data<<" ";
InOrderTraverse(T->rchild);
}
}
void PostOrderTraverse(BiTree T)
{//二叉树的后序遍历
if(T)
{
PostOrderTraverse ( T -> lchild ) ;
PostOrderTraverse ( T -> rchild ) ;
cout << T -> data << " " ;
}
}
int main()
{
char S[100];
while(cin>>S)
{
if(strcmp(S,"0")==0) break;
int i=-1;
BiTree T;
CreateBiTree(T,S,++i);
PreOrderTraverse(T);
cout<<endl;
InOrderTraverse(T);
cout<<endl;
PostOrderTraverse(T);
cout<<endl;
}
return 0;
}
在主函数中,输入一组字符串作为二叉树的先序遍历序列,其中字符 ‘0’ 表示空节点。然后通过调用函数进行先序、中序和后序遍历,并输出结果。
请注意,这里使用的是 C++ 语言来实现二叉树的遍历操作。
内容由零声教学AI助手提供,问题来源于学员提问