#define LENGTH 100
#include<stdio.h>
#include<stdlib.h>
typedef char datatype;
//定义结构体
typedef struct tree{
datatype data;
struct tree * lchild;
struct tree * rchild;
}Tree, *Binary_Tree;
//创建二叉树
int ReadBinTree(Binary_Tree &t){
datatype data;
scanf("%c",&data);
if(data == '#'){
t = NULL;
}
else{
t = (Binary_Tree)malloc(sizeof(Tree));
//生成根结点
t->data = data;
//构造左子树
ReadBinTree(t->lchild);
//构造右子树
ReadBinTree(t->rchild);
}
return 0;
}
//输出
void Visit(Binary_Tree t){
if(t->data != '#'){
printf("%c ",t->data);
}
}
//先序遍历
void preorder(Binary_Tree t){
if(t != NULL){
Visit(t);
preorder(t->lchild);
preorder(t->rchild);
}
}
//中序遍历
void inorder(Binary_Tree t){
if(t != NULL){
inorder(t->lchild);
Visit(t);
inorder(t->rchild);
}
}
//后序遍历
void epilogue(Binary_Tree t){
if(t != NULL){
epilogue(t->lchild);
epilogue(t->rchild);
Visit(t);
}
}
int main(){
Binary_Tree t;
printf("请输入:");
ReadBinTree(t);
printf("先序遍历:\n");
preorder(t);
printf("\n");
printf("中序遍历:\n");
inorder(t);
printf("\n");
printf("后序遍历:\n");
epilogue(t);
printf("\n");
return 0;
}
二叉树的遍历。。。
最新推荐文章于 2023-02-20 22:52:37 发布