SDUT 叶子问题
来源:互联网 发布:网络电视看电视 编辑:程序博客网 时间:2024/05/09 13:40
数据结构实验之二叉树七:叶子问题
Time Limit: 1000MS Memory limit: 65536K
题目描述
已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。
输入
输入数据有多行,每一行是一个长度小于50个字符的字符串。
输出
按从上到下从左到右的顺序输出二叉树的叶子结点。
示例输入
abd,,eg,,,cf,,,xnl,,i,,u,,
示例输出
dfguli
提示
来源
xam
示例程序
#include<bits/stdc++.h>using namespace std;struct Tree{ char c; Tree *L,*R;};Tree* Creat(){ Tree *p=new Tree; p->L=NULL; p->R=NULL; return p;}int num;char s[10000],ss[10000];Tree * Build(Tree* root,int r){ if(num>r) return 0; if(s[num]==',') return 0; root=Creat(); root->c=s[num]; num++; root->L=Build(root->L,r); num++; root->R=Build(root->R,r); //if(!root->L&&root->R) //叶子数 //ans++; return root;}int BFS(Tree *root){ queue<Tree*>Q; Q.push(root); while(!Q.empty()) { Tree* p=Q.front(); Q.pop(); if(!p) return 0; //printf("%d",p->c);//中序遍历 if(p->L) Q.push(p->L); if(p->R) Q.push(p->R); if(!p->L&&!p->R) printf("%c",p->c); }}int main(){ while(~scanf("%s",s)) { num=0; int len=strlen(s); Tree* root=Creat(); root=Build(root,len-1); BFS(root); printf("\n"); } return 0;}
0 0
- SDUT 叶子问题
- SDUT OJ 数据结构实验之二叉树七:叶子问题
- SDUT 3346 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题 (sdut OJ3346)
- sdut oj3346 数据结构实验之二叉树七:叶子问题
- SDUT 3346 数据结构实验之二叉树七:叶子问题
- SDUT-3346 数据结构实验之二叉树七:叶子问题
- 叶子问题
- 数据结构--叶子问题
- 叶子
- 叶子
- 叶子
- 叶子
- 叶子
- 叶子
- 叶子
- 叶子
- 叶子
- 太阳系模型_飞机游戏JAVA084-097
- 充电多面手:不一样的光伏充电宝
- ios-(Xib的使用) 工作随笔
- spring文件
- 白云机场查获具有充电宝功能的时尚女包
- SDUT 叶子问题
- 开始学习C语言
- Java文件操作(一)
- 字符串,数组,字典方法
- iOS9新特性
- Javascript中的原型链
- Test
- dijkstra算法O(n²) 堆优化O(nlogn)
- 解析C#中[],List,Array,ArrayList的区别及应用