#include<stdio.h>
#include<stdlib.h>
typedef struct BTNode
{
char data;
struct BTNode * lchild;
struct BTNode * rchild;
{
char ch;
scanf("%c",&ch);
if(ch=='#')
{
T=NULL;
return;
}
else
{
T=(BTNode *)malloc(sizeof(BTNode));
T->data=ch;
CreateBTree(T->lchild);
CreateBTree(T->rchild);
}
}
void PreOrder(BTNode *T)//先序遍历
{
if(NULL != T)
{
printf("%c\t",T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
void InOrder(BTNode *T)//中序遍历
{
if(NULL != T)
{
InOrder(T->lchild);
printf("%c\t",T->data);
InOrder(T->rchild);
}
}
void PostOrder(BTNode *T)//后续遍历
{
if(NULL != T)
{
PostOrder(T->lchild);
PostOrder(T->rchild);
printf("%c\t",T->data);
}
}
int main(void)
{
BTNode *T;
CreateBTree(T);
PreOrder(T);
putchar(10);
InOrder(T);
putchar(10);
PostOrder(T);
putchar(10);
system("pause");
return 0;
}
#include<stdlib.h>
typedef struct BTNode
{
char data;
struct BTNode * lchild;
struct BTNode * rchild;
}BTNode;
{
char ch;
scanf("%c",&ch);
if(ch=='#')
{
T=NULL;
return;
}
else
{
T=(BTNode *)malloc(sizeof(BTNode));
T->data=ch;
CreateBTree(T->lchild);
CreateBTree(T->rchild);
}
}
void PreOrder(BTNode *T)//先序遍历
{
if(NULL != T)
{
printf("%c\t",T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
void InOrder(BTNode *T)//中序遍历
{
if(NULL != T)
{
InOrder(T->lchild);
printf("%c\t",T->data);
InOrder(T->rchild);
}
}
void PostOrder(BTNode *T)//后续遍历
{
if(NULL != T)
{
PostOrder(T->lchild);
PostOrder(T->rchild);
printf("%c\t",T->data);
}
}
int main(void)
{
BTNode *T;
CreateBTree(T);
PreOrder(T);
putchar(10);
InOrder(T);
putchar(10);
PostOrder(T);
putchar(10);
system("pause");
return 0;
}
本文介绍了一种二叉树的先序建立方法,并详细解释了先序、中序和后续遍历的过程。
遍历方式_C语言源代码&spm=1001.2101.3001.5002&articleId=37990791&d=1&t=3&u=85f5351c3957402cb7dd9f96295e01eb)
1万+

被折叠的 条评论
为什么被折叠?



