数据结构实验之二叉树的建立与遍历
来源:互联网 发布:室内装修平面设计软件 编辑:程序博客网 时间:2024/06/09 20:11
数据结构实验之二叉树的建立与遍历
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
已知一个按先序序列输入的字符序列,如abc,,de,g,,f,,,(其中逗号表示空节点)。请建立二叉树并按中序和后序方式遍历二叉树,最后求出叶子节点个数和二叉树深度。
输入
输入一个长度小于50个字符的字符串。
输出
输出共有4行:
第1行输出中序遍历序列;
第2行输出后序遍历序列;
第3行输出叶子节点个数;
第4行输出二叉树深度。
第1行输出中序遍历序列;
第2行输出后序遍历序列;
第3行输出叶子节点个数;
第4行输出二叉树深度。
示例输入
abc,,de,g,,f,,,
示例输出
cbegdfacgefdba35
#include<bits/stdc++.h>using namespace std;struct Tree{ Tree *left; Tree *right; char data;};void creatTree(Tree * &root){ char temp; cin>>temp; if(temp==',') { root=NULL; } else { root=new Tree(); root->data=temp; creatTree(root->left); creatTree(root->right); }}void zhongxu(Tree *root){ if(root) { zhongxu(root->left); printf("%c",root->data); zhongxu(root->right); }}void houxu(Tree *root){ if(root) { houxu(root->left); houxu(root->right); printf("%c",root->data); }}int leaves(Tree *root){ if(root==NULL) { return 0; } else { if(root->left==NULL&&root->right==NULL) return 1; else return leaves(root->left)+leaves(root->right); }}int deep(Tree *root){ if(root==NULL) { return 0; } else { return 1+max(deep(root->left),deep(root->right)); }}int main(){ Tree *root; creatTree(root); zhongxu(root); printf("\n"); houxu(root); printf("\n"); printf("%d\n",leaves(root)); printf("%d\n",deep(root));}
0 0
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 2136 数据结构实验之二叉树的建立与遍历
- 2136 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- sdutoj2136 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历 SDUT
- HDU.5128 The E-pang Palace
- Struts2实现文件上传
- Java 异常
- 【NSBD】——My first Map
- Oracle 函数
- 数据结构实验之二叉树的建立与遍历
- 实现一个函数,把字符数组中的每个空格替换成“%20”。 例如输入“we are happy.”,则输出“we%20are%20happy”
- Corn Fields(poj3254)状态压缩dp
- Cookie到底是干什么的?
- maven 部署到tomcat6/tomcat7
- [Android] Qt安卓教程(1): 从Qt5.1开始
- 风雨见彩虹
- [Go语言]我的第五个Go语言程序
- Max Points on a Line