二叉树的创建以及遍历
2017-01-11 00:00
155 查看
#include<stdio.h>
#include<stdlib.h>
typedef struct TNode
{
char data;
struct TNode *LChild,*RChild;
}TNode,*Tree;
void CreateTree(Tree *T)
{
char ch;
scanf("%c",&ch);
if(ch == '#')
*T = NULL;
else
{
*T = (TNode *)malloc(sizeof(TNode *));
if(*T == NULL)
exit(-1);
(*T)->data = ch;
CreateTree(&((*T)->LChild));
CreateTree(&((*T)->RChild));
}
}
//先序遍历
void PreOrder(Tree T)
{
if(T != NULL)
{
printf("%c ",T->data);
PreOrder(T->LChild);
PreOrder(T->RChild);
}
}
void MidOrder(Tree T)
{
if(T != NULL)
{
MidOrder(T->LChild);
printf("%c ",T->data);
MidOrder(T->RChild);
}
}
void PosOrder(Tree T)
{
if(T != NULL)
{
PosOrder(T->LChild);
PosOrder(T->RChild);
printf("%c ",T->data);
}
}
int main()
{
Tree T;
T = NULL;
CreateTree(&T);
printf("先序遍历:\n");
PreOrder(T);
printf("\n");
printf("中序遍历:\n");
MidOrder(T);
printf("\n");
printf("后序遍历:\n");
PosOrder(T);
printf("\n");
return 0;
}
//运行结果如下
#include<stdlib.h>
typedef struct TNode
{
char data;
struct TNode *LChild,*RChild;
}TNode,*Tree;
void CreateTree(Tree *T)
{
char ch;
scanf("%c",&ch);
if(ch == '#')
*T = NULL;
else
{
*T = (TNode *)malloc(sizeof(TNode *));
if(*T == NULL)
exit(-1);
(*T)->data = ch;
CreateTree(&((*T)->LChild));
CreateTree(&((*T)->RChild));
}
}
//先序遍历
void PreOrder(Tree T)
{
if(T != NULL)
{
printf("%c ",T->data);
PreOrder(T->LChild);
PreOrder(T->RChild);
}
}
void MidOrder(Tree T)
{
if(T != NULL)
{
MidOrder(T->LChild);
printf("%c ",T->data);
MidOrder(T->RChild);
}
}
void PosOrder(Tree T)
{
if(T != NULL)
{
PosOrder(T->LChild);
PosOrder(T->RChild);
printf("%c ",T->data);
}
}
int main()
{
Tree T;
T = NULL;
CreateTree(&T);
printf("先序遍历:\n");
PreOrder(T);
printf("\n");
printf("中序遍历:\n");
MidOrder(T);
printf("\n");
printf("后序遍历:\n");
PosOrder(T);
printf("\n");
return 0;
}
//运行结果如下
相关文章推荐
- 二叉树的创建以及利用迭代实现中序、先序、后序遍历、清空
- C++ 二叉树的创建以及遍历
- 二叉树动态链式创建以及遍历
- 二叉树的创建以及遍历方法
- 二叉树的创建以及遍历
- 二叉树的创建以及遍历
- 二叉树的创建以及四种遍历,叶子结点的数量,二叉树深度(简单二叉树)
- 二叉树的基本操作精集(创建、遍历、求深度结点以及叶子结点个数)
- c++实现二叉树的非递归创建以及非递归先序、中序、后序遍历
- C语言创建二叉树数据结构, 以及各种遍历
- 创建二叉树的两种方法以及三种遍历方法
- 二叉树的创建以及二叉树的4种遍历方法
- 二叉树的创建以及前序、中序、后序遍历
- 二叉树的创建,先序、中序、后序遍历的递归实现以及层序遍历
- 二叉树创建以及遍历(j简单创建、遍历、叶子计数、深度计数、销毁)之1
- 二叉树的创建,以及递归前中后序以及层次遍历
- java实现二叉树的创建以及遍历
- 二叉树的创建,插入,删除,输出,求高度,求度以及三种遍历方式实现
- java实现二叉树的创建以及遍历
- 二叉树(一):二叉树的创建以及三种遍历方法的递归实现