数据结构实验之二叉树七:叶子问题
来源:互联网 发布:一厢情愿知乎 编辑:程序博客网 时间:2024/06/05 00:11
数据结构实验之二叉树七:叶子问题
Time Limit: 1000MS Memory limit: 65536K
题目描述
已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。
输入
输入数据有多行,每一行是一个长度小于50个字符的字符串。
输出
按从上到下从左到右的顺序输出二叉树的叶子结点。
示例输入
abd,,eg,,,cf,,,xnl,,i,,u,,
示例输出
dfguli
提示
来源
xam
看到题目中“请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。”这一句话是不是有点眼熟,这个题目如果层序遍历已经很明白了,那么这个题目也就没有问题了,详细请见同类文章二叉树之层序遍历。
下面是代码:
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef char Qelement;typedef struct node{ Qelement data; struct node *lchild,*rchild;}node,*nodeptr;char a[55];int i;struct node *Creat()//万年不变的输入函数{//你高兴的话也可以改变一下 struct node *T; if(a[i++]==',')T=NULL; else { T=(struct node *)malloc(sizeof(struct node)); T->data=a[i-1]; T->lchild=Creat(); T->rchild=Creat(); } return T;}int treelevel(struct node *T,int level){ if(!T)//当节点为空时,即当遍历到叶子节点的左右节点时 return 0;//返回值为零,表明此层此节点下面已经无节点了 if(level==0&&T->rchild==NULL&&T->lchild==NULL)//当遍历到当前层次时, //并且当前层次为叶子节点,输出当前层次的节点值 { printf("%c",T->data); return 1;//返回值为1,说明此时此层还存在节点 }//下面的返回函数将左节点放在前面,注意思考一下,此处的顺序不可颠倒 else if(level==0&&!(T->rchild==NULL&&T->lchild==NULL))return 1; return treelevel(T->lchild,level-1)+treelevel(T->rchild,level-1);}void level1(struct node *T){//控制遍历的层次,不必知道有多少层 int i=0; for(i=0;;i++)//此处用while也可以 { if(!treelevel(T,i)) break;//当全部都为叶子节点时,遍历完毕,退出 }}int main(){ struct node *T; int t; scanf("%d",&t); while(t--) { i=0; scanf("%s",a); T=Creat(); level1(T); printf("\n"); } return 0;}
0 0
- 数据结构实验之二叉树七:叶子问题
- SDUT OJ 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题
- SDUT 3346 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题 (sdut OJ3346)
- 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题
- 3346数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树七:叶子问题
- WINCE5.0利用C#语言编写的串口采集、显示和存储
- Android 蓝牙开发基本流程
- MpAndroidChart使用
- 保存string或者其他信息到本地txt
- Ubuntu环境下OpenGrok的安装及配置
- 数据结构实验之二叉树七:叶子问题
- Dubbo服务容器
- ECShop手机支付宝支付篡改金额BUG
- JAVA 重写和重载的原则
- FreeCMS视频教程 创建一个站点
- Caffe学习笔记2:Windows下安装和搭建caffe框架
- sql server2000查询分析器中如何将查询结果导出到Excel且带表头
- LeetCode—384. Shuffle an Array
- linux cut用法