#include<bits/stdc++.h>
using namespace std;
typedef struct node
{
char data;
struct node *lc,*rc;
} node,*link;
int i,flag;
void creat(link &L)
{
char ch;
scanf("%c",&ch);
i++;
if(i==1&&ch=='0')
{
flag=0;
return ;
}
if(ch=='0')
L=NULL;
else
{
L=new node;
L->data=ch;
creat(L->lc);
creat(L->rc);
}
}
void preorder(link L)
{
if(L)
{
printf("%c",L->data);
preorder(L->lc);
preorder(L->rc);
}
}
void inorder(link L)
{
if(L)
{
inorder(L->lc);
printf("%c",L->data);
inorder(L->rc);
}
}
void laorder(link L)
{
if(L)
{
laorder(L->lc);
laorder(L->rc);
printf("%c",L->data);
}
}
int main()
{
while(1)
{
i=0,flag=1;
link L;
creat(L);
if(!flag) break;
preorder(L);
printf("\n");
inorder(L);
printf("\n");
laorder(L);
printf("\n");
getchar();
}
return 0;
}
基于二叉链表的二叉树的遍历
最新推荐文章于 2024-05-18 21:33:14 发布