树的递归建立与遍历
2016-07-19 12:20
351 查看
#include<stdio.h>
#include<stdlib.h>
#define OVERFLOW 0
typedef char TElemType;
typedef struct BiTnode{
TElemType data;
struct BiTnode *lchild,*rchild;
}BiTnode,*BiTree;
//先序构造二叉树
int CreateBiTree(BiTree &T){
TElemType ch;
scanf("%c",&ch);
if(ch==' ') T=NULL;
else{
T=(BiTnode*)malloc(sizeof(BiTnode));
if(!T) exit(OVERFLOW);
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return 1;
}
//前序遍历算法
void PreOrder(BiTree T){
if( T != NULL ) {
printf("%c\t",T->data);
PreOrder ( T->lchild );
PreOrder ( T->rchild );
}
}
//中序遍历算法
void InOrder(BiTree T){
if ( T != NULL ) {
InOrder ( T->lchild );
printf("%c\t",T->data);
InOrder ( T->rchild );
}
}
//后序遍历算法
void PostOrder(BiTree T){
if ( T != NULL ) {
PostOrder ( T->lchild );
PostOrder ( T->rchild );
printf("%c\t",T->data);
}
}
int main(){
BiTree T;
printf("请输入数据:\n");
CreateBiTree(T);
printf("\n前序遍历算法:\n");
PreOrder(T);
printf("\n中序遍历算法:\n");
InOrder(T);
printf("\n后序遍历算法:\n");
PostOrder(T);
return 0;
}
#include<stdlib.h>
#define OVERFLOW 0
typedef char TElemType;
typedef struct BiTnode{
TElemType data;
struct BiTnode *lchild,*rchild;
}BiTnode,*BiTree;
//先序构造二叉树
int CreateBiTree(BiTree &T){
TElemType ch;
scanf("%c",&ch);
if(ch==' ') T=NULL;
else{
T=(BiTnode*)malloc(sizeof(BiTnode));
if(!T) exit(OVERFLOW);
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return 1;
}
//前序遍历算法
void PreOrder(BiTree T){
if( T != NULL ) {
printf("%c\t",T->data);
PreOrder ( T->lchild );
PreOrder ( T->rchild );
}
}
//中序遍历算法
void InOrder(BiTree T){
if ( T != NULL ) {
InOrder ( T->lchild );
printf("%c\t",T->data);
InOrder ( T->rchild );
}
}
//后序遍历算法
void PostOrder(BiTree T){
if ( T != NULL ) {
PostOrder ( T->lchild );
PostOrder ( T->rchild );
printf("%c\t",T->data);
}
}
int main(){
BiTree T;
printf("请输入数据:\n");
CreateBiTree(T);
printf("\n前序遍历算法:\n");
PreOrder(T);
printf("\n中序遍历算法:\n");
InOrder(T);
printf("\n后序遍历算法:\n");
PostOrder(T);
return 0;
}
相关文章推荐
- 文件遍历排序函数
- C#数据结构之顺序表(SeqList)实例详解
- C#递归算法之分而治之策略
- Lua 学习笔记之C API 遍历 Table实现代码
- Lua教程(七):数据结构详解
- 有关数据库SQL递归查询在不同数据库中的实现方法
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#中的递归APS和CPS模式详解
- C#遍历文件夹后上传文件夹中所有文件错误案例分析
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#中遍历Hashtable的4种方法
- WinForm实现按名称递归查找控件的方法
- C#数据结构之单链表(LinkList)实例详解
- C#递归方法实现无限级分类显示效果实例
- 使用SqlServer CTE递归查询处理树、图和层次结构
- C#递归算法之打靶算法分析
- C#中的尾递归与Continuation详解
- Erlang中遍历取出某个位置的最大值代码
- 数据结构之Treap详解