递归实现二叉树的三种遍历
2016-12-10 10:26
281 查看
#include <stdio.h> #include <stdlib.h> typedef char ElementType; typedef struct TreeNode{ ElementType Data; struct TreeNode *lchild; struct TreeNode *rchild; }*BinTree; //建立 void creatBinTree(BinTree *T) { char ch; scanf("%c",&ch); if(ch == '0') (*T) = NULL; else { if(!((*T) = (TreeNode *)malloc(sizeof(TreeNode)))) return; (*T)->Data = ch; creatBinTree(&(*T)->lchild); creatBinTree(&(*T)->rchild); } } //递归 //中序遍历 void inOrderTraversal(BinTree T) { if(T) { inOrderTraversal(T->lchild); printf("%c",T->Data); inOrderTraversal(T->rchild); } } //先序遍历 void preOrderTraversal(BinTree T) { if(T) { printf("%c",T->Data); preOrderTraversal(T->lchild); preOrderTraversal(T->rchild); } } //后序遍历 void postOrderTraversal(BinTree T) { if(T) { postOrderTraversal(T->lchild); postOrderTraversal(T->rchild); printf("%c",T->Data); } } int main() { BinTree T; creatBinTree(&T); printf("inOrderTraversal is:\n"); inOrderTraversal(T); printf("\n"); printf("preOrderTraversal is:\n"); preOrderTraversal(T); printf("\n"); printf("postOrderTraversal is:\n"); postOrderTraversal(T); printf("\n"); return 0; }
相关文章推荐
- 二叉树的三种遍历的非递归实现
- 二叉树三种非递归遍历实现
- 二叉树的三种遍历方式的循环和递归的实现方式
- java实现二叉树的创建及三种递归遍历
- 二叉树的构建和三种遍历算法 (递归实现)
- 详细讲解二叉树三种遍历方式的递归与非递归实现
- 二叉树三种遍历递归及非递归实现(Java)
- 数据结构(二叉树系列)先序创建三种遍历和求深度(递归实现)
- 二叉树的三种遍历方式的递归实现和非递归实现
- 二叉树三种遍历方式非递归实现
- 用非递归方式实现二叉树的前、中、后三种遍历方法
- 二叉树的建立以及三种遍历方式的递归、非递归的实现
- 43 递归和非递归俩种方法实现二叉树的三种遍历
- 二叉树三种遍历(递归以及非递归实现)
- 详细讲解二叉树三种遍历方式的递归与非递归实现
- 二叉树的三种遍历方式的循环和递归的实现方式
- java实现二叉树的三种遍历算法(递归)
- C++实现二叉树的建立和三种递归遍历
- 二叉树三种遍历算法递归和非递归实现
- 二叉树的三种递归遍历实现