#include <iostream>
using namespace std;
struct BTNode
{
char date;
BTNode *lchild;
BTNode *rchild;
};
void CreateBTNode(BTNode* &b,char* str)
{
BTNode* St[sizeof(str)],*p;
int top=-1,k,j=0;
char ch;
b=NULL;
ch=str[j];
while(ch!='\0')
{
switch(ch)
{
case '(':
top++;
St[top]=p;
k=1;
break;
case ')':
top--;
break;
case ',':
k=2;
break;
default:
p=new BTNode;
p->date=ch;
p->lchild=p->rchild=NULL;
if(b==NULL)
b=p;
else
{
switch(k)
{
case 1:
St[top]->lchild=p;
break;
case 2:
St[top]->rchild=p;
break;
}
}
}
j++;
ch=str[j];
}
}
void PerOrder(BTNode *b)
{
if(b!=NULL)
{
cout<<b->date;
PerOrder(b->lchild);
PerOrder(b->rchild);
}
}
int main()
{
char ch[]={'A','(','B','(','D','(',',','G',')',')',',','C','(','E',',','F',')',')'};
BTNode *B=new BTNode;
CreateBTNode(B,ch);
PerOrder(B);
return 0;
}
C++二叉树的先序遍历
最新推荐文章于 2025-03-06 15:10:19 发布