数据结构实验之二叉树的建立与遍历
来源:互联网 发布:vscode 代码提示 编辑:程序博客网 时间:2024/06/05 09:34
题目描述
已知一个按先序序列输入的字符序列,如abc,,de,g,,f,,,(其中逗号表示空节点)。请建立二叉树并按中序和后序方式遍历二叉树,最后求出叶子节点个数和二叉树深度。
输入
输入一个长度小于50个字符的字符串。
输出
输出共有4行:
第1行输出中序遍历序列;
第2行输出后序遍历序列;
第3行输出叶子节点个数;
第4行输出二叉树深度。
第1行输出中序遍历序列;
第2行输出后序遍历序列;
第3行输出叶子节点个数;
第4行输出二叉树深度。
示例输入
abc,,de,g,,f,,,
示例输出
cbegdfa
cgefdba
3
5
顺序存储,叶子==左右子树都为空;
源代码C++下可行
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<malloc.h>typedef char ET;char str[100];int i,n,count=0;
/*定义数*/typedef struct BiTNode{ ET data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;/*建树*/int CreatrBiTree(BiTree &T){ if(i<n) { if(str[i++]==',') T=NULL; else { T=(BiTNode*)malloc(sizeof(BiTNode)); if(!T)exit(-1); T->data=str[i-1]; CreatrBiTree(T->lchild); CreatrBiTree(T->rchild); } } return 1;}/*中序输出*/void InOrder(BiTree &T){ if(T) { InOrder(T->lchild); printf("%c",T->data); InOrder(T->rchild); }}/*后续输出*/void PostOrder(BiTree &T){ if(T) { PostOrder(T->lchild); PostOrder(T->rchild); printf("%c",T->data); }}/*叶子*/void LeafCount(BiTree &T){ if(T) { if((!T->lchild)&&(!T->rchild)) { count++; } LeafCount(T->lchild); LeafCount(T->rchild); }}/*深度*/int DepthBiTree(BiTree T){ int HL,HR; if(!T)return 0; else { HL=DepthBiTree(T->lchild); HR=DepthBiTree(T->rchild); if(HL>HR) return HL+1; else return HR+1; }}int main(){ BiTree T; i=0; scanf("%s",str); n=strlen(str); CreatrBiTree(T); InOrder(T); printf("\n"); PostOrder(T); printf("\n"); LeafCount(T); printf("%d\n",count); printf("%d\n", DepthBiTree(T));}
0 0
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 2136 数据结构实验之二叉树的建立与遍历
- 2136 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- sdutoj2136 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历 SDUT
- 数据结构实验之二叉树二:遍历二叉树
- 自定义ImageView实现切图的无缝对接
- mybatis-字符串判断
- JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- Hibernate框架关系映射
- 数据结构实验之二叉树三:统计叶子数
- 数据结构实验之二叉树三:统计叶子数
- fop's font
- 1.1机器学习基础-python深度机器学习
- tensorflow build source shell __ for ubuntu
- 获取整个实例下缺失的索引信息
- JSON XML解析底层是如何处理的?