二叉树遍历程序
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
#define NULL 0
typedef char TElemType;
typedef int Status;
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
} BiTNode,*BiTree;
//扩充后的先序建立二叉树
Status CreatBiTree(BiTree *T)
{
char ch;
ch=getchar();
if(ch=='#')
(*T)=NULL;//#表示空节点
else
{
(*T)=(BiTree)malloc(sizeof(BiTNode));
(*T)->data =ch;
CreatBiTree(&(*T)->lchild );
CreatBiTree(&(*T)->rchild );
}
return 1;
}
//先序递归遍历二叉树
void preorderun(BiTNode *b) //NLR 先序遍历
{
if(b!=NULL)
{
printf(" %c",b->data); //访问结点
preorderun(b->lchild); //先序遍历左子树
preorderun(b->rchild); //先序遍历右子树
}
}
//中序递归遍历二叉树
void inorderun(BiTNode *b) //LNR 中序遍历
{
if(b!=NULL)
{
inorderun(b->lchild); //中序遍历左子树
printf(" %c",b->data); //访问结点
inorderun(b->rchild); //中序遍历右子树
你可能喜欢
- 二叉树创建
- 非递归后序遍历二叉树
- 二叉树遍历算法
- 数据结构二叉树实验报告


