数据结构(二叉树系列)先序创建三种遍历和求深度(递归实现)
2014-11-12 20:21
609 查看
#include<stdio.h> #include<malloc.h> #include<stdlib.h> typedef struct BiTNode{ // 二叉树结点结构 char data; // 结点数据 struct BiTNode *lchild; // 左孩子 struct BiTNode *rchild; // 右孩子 }BiTNode,*BiTree; BiTree CreateBiTree(BiTree T); void TraversalBiTree1(BiTree T); void TraversalBiTree2(BiTree T); void TraversalBiTree3(BiTree T); int Deep(BiTree T); int main(void) { BiTree T=NULL;
T=CreateBiTree(T); printf("先序遍历:\n"); TraversalBiTree1(T); printf("\n"); printf("中序遍历:\n"); TraversalBiTree2(T); printf("\n"); printf("后序遍历:\n"); TraversalBiTree3(T); printf("\n");
printf("树的深度:%d",Deep(T)); return 0; } BiTree CreateBiTree( BiTree T)//先序递归创建 { char ch; scanf("%c",&ch); if(ch=='#') T=NULL; else{ if(!(T=(BiTNode *)malloc(sizeof(BiTNode)))) exit(-1); T->data=ch; // 生成根节点 T->lchild=CreateBiTree(T->lchild);// 构造左子树 T->rchild=CreateBiTree(T->rchild);// 构造右子树 } return T; } void TraversalBiTree1( BiTree T)//先序遍历 { if(T == NULL) return; printf("%c ",T->data); TraversalBiTree1(T->lchild); TraversalBiTree1(T->rchild); } void TraversalBiTree2( BiTree T)//中序遍历 { if(T == NULL) return; TraversalBiTree2(T->lchild); printf("%c ",T->data); TraversalBiTree2(T->rchild); } void TraversalBiTree3( BiTree T)//后序遍历 { if(T == NULL) return; TraversalBiTree3(T->lchild); TraversalBiTree3(T->rchild); printf("%c ",T->data); } int Deep(BiTree T)//求深度 { int lchild,rchild; if(T == NULL) return 0; lchild = 1 + Deep(T->lchild); rchild = 1 + Deep(T->rchild); return lchild>rchild?lchild:rchild; }
相关文章推荐
- 二叉树(一):二叉树的创建以及三种遍历方法的递归实现
- 数据结构 —— 二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- java实现二叉树的创建及三种递归遍历
- 二叉树的创建,遍历,查找,查找父节点,深度,大小等的递归实现
- 数据结构(六)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 数据结构(六)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 二叉树的创建、相关操作、递归和非递归式实现三种遍历
- 数据结构 ——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 【python中二叉树的实现】python中二叉树的创建、三种方式递归遍历和非递归遍历
- 二叉树的先序创建,先序,中序,后序的递归与非递归遍历,层次遍历,叶子结点数及树的深度
- 不疯魔,不成活!——二叉树的创建、遍历(递归实现)等操作。
- 递归方法实现二叉树的创建,遍历
- 一步一步学数据结构之n--n(图遍历--深度优先遍历--非递归实现)
- 详细讲解二叉树三种遍历方式的递归与非递归实现
- 二叉树的基本操作(创建、递归和非递归遍历、求深度、求叶子数)
- 二叉树的建立以及三种遍历方式的递归、非递归的实现
- 二叉树的先序创建,先序,中序,后序的递归与非递归遍历,层次遍历,叶子结点数及树的深度
- 一步一步学数据结构之n--n(图遍历--深度优先遍历--非递归实现)
- 二叉树的创建,先序、中序、后序遍历的递归实现以及层序遍历
- 二叉树的三种遍历的非递归实现