【数据结构】二叉树的操作2
来源:互联网 发布:淘宝招牌制作软件 编辑:程序博客网 时间:2024/06/11 15:21
#include <stdio.h>#include <stdlib.h>typedef char ElemType;typedef struct BiTree{ ElemType elem;BiTree * LChild;BiTree * RChild;}BiTree,* PBiTree;/*先序顺序创建二叉树*/PBiTree CreateBiTree();/*先序顺序遍历二叉树*/void PreOrderTraverse(PBiTree T);/*中序顺序遍历二叉树*/void InOrderTraverse(PBiTree T);/*后序顺序遍历二叉树*/void PostOrderTraverse(PBiTree T);/*遍历查找叶子节点*/void TravelLeadNode(PBiTree T);/*计算树的高度*/int CountTreeHeight(PBiTree T);int main(){PBiTree Tree;int TreeHeight = 0;printf("按照先序顺序创建二叉树:\n");Tree = CreateBiTree();printf("\n按照先序顺序输出\n");PreOrderTraverse(Tree);printf("\n按照中序顺序输出\n");InOrderTraverse(Tree);printf("\n按照后序顺序输出\n");PostOrderTraverse(Tree);printf("\n叶子结点为:\n");TravelLeadNode(Tree);TreeHeight = CountTreeHeight(Tree);printf("\n树的深度为:%d\n",TreeHeight);return 0;}PBiTree CreateBiTree(){PBiTree Tree = NULL;ElemType elem = '\0';scanf("%c",&elem);if (elem == '#'){Tree = NULL;}else{Tree = (PBiTree)malloc(sizeof(BiTree));Tree->elem = elem;Tree->LChild = CreateBiTree();Tree->RChild = CreateBiTree();}return Tree;}void PreOrderTraverse(PBiTree T){if (T != NULL){printf("%c ",T->elem);PreOrderTraverse(T->LChild);PreOrderTraverse(T->RChild);}else return;}void InOrderTraverse(PBiTree T){if (T != NULL){if (T->LChild != NULL){InOrderTraverse(T->LChild);}printf("%c ",T->elem);InOrderTraverse(T->RChild);}}void PostOrderTraverse(PBiTree T){if (T != NULL){if (T->LChild != NULL){PostOrderTraverse(T->LChild);}PostOrderTraverse(T->RChild);printf("%c ",T->elem);}}void TravelLeadNode(PBiTree T){if (T != NULL){if (T->LChild == NULL && T->RChild == NULL){printf("%c ",T->elem);}TravelLeadNode(T->LChild);TravelLeadNode(T->RChild);}}int CountTreeHeight(PBiTree T){if (T != NULL){returnCountTreeHeight(T->LChild) > CountTreeHeight(T->RChild) ? CountTreeHeight(T->LChild)+1 : CountTreeHeight(T->RChild)+1;}else{return 0;}}
0 0
- 【数据结构】二叉树的操作2
- 数据结构-二叉树操作
- 二叉树操作--数据结构
- 数据结构二叉树操作
- 数据结构二叉树操作
- 数据结构实验2——二叉树的基本操作
- 数据结构之二叉树的基本操作
- [数据结构] 二叉树的操作实现
- 数据结构关于二叉树的操作
- 数据结构 二叉搜索树的相关操作
- 数据结构——二叉树的操作
- 数据结构 二叉树大部分操作的实现
- 数据结构(27)二叉树的操作
- 【数据结构】二叉树的基本操作
- 数据结构和二叉树操作的封装
- 【数据结构】搜索二叉树的相关操作
- 数据结构:二叉查找树的相关操作
- 数据结构之二叉树的简单操作
- 《哲学家们都干了些什么》读书笔记
- Git学习系列(五)分支管理详解
- 黑马程序员-第1天 JAVA 感想
- C++ 计时类
- 聚类算法之DBScan(C++)
- 【数据结构】二叉树的操作2
- 小米借来自星星的你炒作 雷军请客啤酒炸鸡
- 对于asp.netMVC3模式里面不解的地方总结
- 马航飞机失联后或折返 马来西亚扩大搜救范围
- 我的第五天:错误总结
- JAVA环境变量配置
- 【蓝桥杯】横向打印排序二叉树
- R.java不生成原因
- 如何发表专利