Problem Description

已知一个按先序序列输入的字符序列,如abc,,de,g,,f,,,(其中逗号表示空节点)。请建立二叉树并按中序和后序方式遍历二叉树,最后求出叶子节点个数和二叉树深度。

Input

输入一个长度小于50个字符的字符串。

Output

输出共有4行:
第1行输出中序遍历序列;
第2行输出后序遍历序列;
第3行输出叶子节点个数;
第4行输出二叉树深度。

Example Input

abc,,de,g,,f,,,

Example Output

cbegdfacgefdba35

Hint

#include <iostream>
#include <stack>
#include <malloc.h>
using namespace std;
typedef struct btree
{char data;btree *lchild,*rchild;
}btree;
char ch[51];
int i=0,sum=0;
void createbtree(btree *&root)
{char c;c=ch[i++];if(c==',')root=NULL;else{root=(btree *)malloc(sizeof(btree));root->data=c;createbtree(root->lchild);createbtree(root->rchild);}
}
void inorder(btree *&b)
{if(b!=NULL&&b->lchild==NULL&&b->rchild==NULL)sum++;if(b!=NULL){inorder(b->lchild);cout<<b->data;inorder(b->rchild);}
}
void postorder(btree *&b)
{stack<btree*>Stack;btree *p=b;do{while(p!=NULL){Stack.push(p);p=p->lchild;}bool flag=true;btree *r=NULL;while(!Stack.empty()&&flag){p=Stack.top();if(p->rchild==r){cout<<p->data;Stack.pop();r=p;}else{p=p->rchild;flag=false;}}}while(!Stack.empty());
}
int  dep( btree *&b)
{int  rdep,ldep;if(b==NULL)return 0;else{ldep=dep(b->lchild);rdep=dep(b->rchild);}return ldep>rdep?(ldep+1):(rdep+1);
}
int main()
{btree *root;cin>>ch;createbtree(root);inorder(root);cout<<endl;postorder(root);cout<<endl;cout<<sum<<endl;cout<<dep(root)<<endl;
}

sdut 2136 数据结构实验之二叉树的建立与遍历相关推荐

  1. 数据结构实验之二叉树的建立与遍历

    题目描述        已知一个按先序序列输入的字符序列,如abc,,de,g,,f,,,(其中逗号表示空节点).请建立二叉树并按中序和后序方式遍历二叉树,最后求出叶子节点个数和二叉树深度. 输入   ...

  2. 数据结构实验之二叉树五:层序遍历 // oj3344 队列+二叉树 // 先序 --层次

    原题链接:oj3344 数据结构实验之二叉树五:层序遍历 Description 已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点).请建立二叉树并求二叉树的层次遍历序列. In ...

  3. 3344 数据结构实验之二叉树五:层序遍历

    数据结构实验之二叉树五:层序遍历 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 已知一个按先序输入的字符序列,如abd,,e ...

  4. sdut 3341数据结构实验之二叉树二:遍历二叉树

    数据结构实验之二叉树二:遍历二叉树 Time Limit: 1000MS Memory Limit: 65536K Problem Description 已知二叉树的一个按先序遍历输入的字符序列,如 ...

  5. pta 03-树1 树的同构 SDUT 3340 数据结构实验之二叉树一:树的同构

    03-树1 树的同构 (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是"同构"的.例如图1给出的两棵树就是同构的,因为我们把其中一棵 ...

  6. 数据结构实验之二叉树五:层序遍历(STL和模拟队列两种方法)

    Description 已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点).请建立二叉树并求二叉树的层次遍历序列. Input 输入数据有多行,第一行是一个整数t (t<1 ...

  7. 数据结构实验之二叉树五:层序遍历

    题目描述 已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点).请建立二叉树并求二叉树的层次遍历序列. 输入  输入数据有多行,第一行是一个整数t (t<1000) ...

  8. 数据结构——二叉树的建立与遍历算法(实验报告)

    实验名称:二叉树的建立与遍历算法          指导教师: 实验日期:2022年月日 实验地点: 成绩: 实验目的: 1.掌握二叉树的定义. 2.二叉树的链式存储结构及在链式存储结构中三种遍历(前 ...

  9. 数据结构实验二 :二叉树的操作与实现

    数据结构实验一:线性表,堆栈和队列实现 数据结构实验二 :二叉树的操作与实现 数据结构实验三: 图的操作与实现 数据结构实验四 : 查找和排序算法实现 文章目录 一.实验目的: 二.使用仪器.器材 三 ...

最新文章

  1. matlab语言实验二,实验二 MATLAB语言基础
  2. Docker 学习6 Docker存储卷
  3. 模仿国外某小哥,做的一个字符串转动态linq表达式 及 部分扩展
  4. vue3.0以上关于打包后出现空白页和路由不起作用
  5. es常用curl命令
  6. [华清远见]FPGA公益培训
  7. 用公式求e^x的近似值
  8. 【爬虫剑谱】一卷1章 软件篇-Mongodb的安装及配置
  9. thinkphp5 事务回滚_卓象程序员:ThinkPHP5实现事务功能
  10. C# 取Visio模型信息的简易方法
  11. csf安装及命令参数
  12. VUE 动态三级路由界面不显示
  13. XTUOJ-1277-Triangle
  14. 小程序解析富文本(支持视频,支持微信编辑器,支持135编辑器富文本样式)
  15. p1633[进制应用]砝码称重
  16. 各Linux发行版的比较
  17. 面试官问python熟练吗_自学Python面试考官为何给了我3k薪资?看面试官怎么说
  18. Android ListView添加头部和尾部
  19. buuctf pwn wp(第四波)格式化字符串漏洞系列
  20. 全志T507核心板常见问题解析

热门文章

  1. hdu 4679 树状dp
  2. 【老孙随笔】属相影响你的职业前途吗?
  3. poj 1065 Wooden Sticks
  4. WINCE 开机自动弹USB连接窗口问题(已解决)
  5. spring整合redis缓存
  6. Oracle_sql优化基础——优化器总结
  7. Semi-Supervised Classification with Graph Convolutional Networks
  8. 构造图 Codeforces Round #236 (Div. 2) C. Searching for Graph
  9. js 正则学习小记之匹配字符串
  10. HtmlAgilityPack 抓取页面的乱码处理