递归法遍历二叉树 (先序遍历 中序遍历 后序遍历)
来源:互联网 发布:网络简介的阅读答案 编辑:程序博客网 时间:2024/04/30 16:38
#include<stdio.h>
#include<stdlib.h>
typedef int DataType;
#define MAX 50
typedef struct Node
{
DataType elem;
struct Node *left;
struct Node *right;
}BitNode,*BitTree;
typedef struct Stack
{
BitTree elem[MAX];
int len;
}stack;
BitTree CreateTree()
{
BitTree BT=NULL;
DataType e;
scanf("%d",&e);
if(e!=0)
{
BT=(BitTree)malloc(sizeof(BitNode));
BT->elem=e;
BT->left=CreateTree();
BT->right=CreateTree();
}
return BT;
}
void PreOrderTravel(BitTree BT)//递归法先序遍历
{
if(BT!=NULL)
{
printf("%d ",BT->elem);
PreOrderTravel(BT->left);
PreOrderTravel(BT->right);
}
}
void MidOrderTravel(BitTree BT)//递归法中序遍历
{
if(BT!=NULL)
{
MidOrderTravel(BT->left);
printf("%d ",BT->elem);
MidOrderTravel(BT->right);
}
}
void AfterOrderTravel(BitTree BT)//递归法后序遍历
{
if(BT!=NULL)
{
AfterOrderTravel(BT->left);
AfterOrderTravel(BT->right);
printf("%d ",BT->elem);
}
}
int main()
{
BitTree BT=NULL;
printf("请输入元素:");
BT=CreateTree();
printf("\n先序遍历结果如下:\n");
PreOrderTravel(BT);
printf("\n中序遍历结果如下:\n");
MidOrderTravel(BT);
printf("\n后序遍历结果如下:\n");
AfterOrderTravel(BT);
return 0;
}
#include<stdlib.h>
typedef int DataType;
#define MAX 50
typedef struct Node
{
DataType elem;
struct Node *left;
struct Node *right;
}BitNode,*BitTree;
typedef struct Stack
{
BitTree elem[MAX];
int len;
}stack;
BitTree CreateTree()
{
BitTree BT=NULL;
DataType e;
scanf("%d",&e);
if(e!=0)
{
BT=(BitTree)malloc(sizeof(BitNode));
BT->elem=e;
BT->left=CreateTree();
BT->right=CreateTree();
}
return BT;
}
void PreOrderTravel(BitTree BT)//递归法先序遍历
{
if(BT!=NULL)
{
printf("%d ",BT->elem);
PreOrderTravel(BT->left);
PreOrderTravel(BT->right);
}
}
void MidOrderTravel(BitTree BT)//递归法中序遍历
{
if(BT!=NULL)
{
MidOrderTravel(BT->left);
printf("%d ",BT->elem);
MidOrderTravel(BT->right);
}
}
void AfterOrderTravel(BitTree BT)//递归法后序遍历
{
if(BT!=NULL)
{
AfterOrderTravel(BT->left);
AfterOrderTravel(BT->right);
printf("%d ",BT->elem);
}
}
int main()
{
BitTree BT=NULL;
printf("请输入元素:");
BT=CreateTree();
printf("\n先序遍历结果如下:\n");
PreOrderTravel(BT);
printf("\n中序遍历结果如下:\n");
MidOrderTravel(BT);
printf("\n后序遍历结果如下:\n");
AfterOrderTravel(BT);
return 0;
}
0 0
- 递归法遍历二叉树 (先序遍历 中序遍历 后序遍历)
- 二叉树 非递归 先序遍历 中序遍历 后序遍历 层次遍历
- 二叉树非递归先序遍历、中序遍历、后序遍历
- 二叉树T 的先序遍历、中序遍历、后序遍历(递归实现)
- 二叉树遍历(先序遍历、中序遍历、后序遍历)——递归方法和非递归方法
- 二叉树的先序遍历、中序遍历、后序遍历、层次遍历的递归实现
- 二叉树的遍历(2)--先序遍历,中序遍历,后序遍历(非递归)
- 二叉树的先序、中序、后序递归遍历和非递归遍历
- 二叉树的先序遍历,后序遍历,中序遍历,层次遍历
- 二叉树的遍历(1)--先序遍历,中序遍历,后序遍历
- 二叉树的遍历代码(先序遍历,中序遍历,后序遍历)
- 二叉树-建树,层次遍历,先序遍历,中序遍历,后序遍历
- 二叉树先序建立,先序遍历,中序遍历,后序遍历(递归)
- 先序遍历中序遍历后序遍历确定一棵二叉树(递归、非递归)
- 二叉树的先序遍历、中序遍历以及后序遍历(递归以及非递归方式)
- 给出二叉树的先序和中序遍历,递归求解后序遍历
- 二叉树的后序,先序,中序遍历的非递归遍历
- c++实现二叉树的先序遍历,中序遍历,后序遍历(递归方法)
- 神经网络入门
- hadoop使用java多文件上传简单demo
- 常见排序算法之快速排序
- android 延时线程
- OFD[6]-第五章互换
- 递归法遍历二叉树 (先序遍历 中序遍历 后序遍历)
- 【程序1】
- Leetcode 254. Factor Combinations 找一个数的所有因子(Backtracking)
- python 核心练习第八章习题(部分)
- java简单学习计划
- notify()和notifyAll()主要区别
- EventBus 3.0---真之我见
- redis的详解
- GetModuleFileName()获取程序路径