数据结构实验之二叉树七:叶子问题
2015-11-08 11:50
232 查看
数据结构实验之二叉树七:叶子问题
Time Limit: 1000MS Memory limit: 65536K
题目描述
已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。输入
输入数据有多行,每一行是一个长度小于50个字符的字符串。输出
按从上到下从左到右的顺序输出二叉树的叶子结点。示例输入
abd,,eg,,,cf,,, xnl,,i,,u,,
示例输出
dfg uli
提示
来源
xam示例程序
#include<stdio.h> #include<string.h> #include<stdlib.h> char a[100]; int l1; struct node { int data; struct node *lchild,*rchild; }; struct node *creat() { struct node *root; char c; c=a[l1++]; if(c==',') return NULL; else { root=(struct node *)malloc(sizeof(struct node)); root->data=c; root->lchild=creat(); root->rchild=creat(); } return root; } void cengci(struct node *root) { int out=0,in=0; struct node *q[100]; q[in++]=root; while(in>out) { if(q[out]) { if(q[out]->lchild==NULL&&q[out]->rchild==NULL) printf("%c",q[out]->data); q[in++]=q[out]->lchild; q[in++]=q[out]->rchild; } out++; } } int main() { int i,j,n,m,k,t; struct node *root; while(scanf("%s",a)!=EOF) { l1=0; root=(struct node *)malloc(sizeof(struct node)); root=creat(); cengci(root); printf("\n"); } return 0; }
相关文章推荐
- 数据结构实验之二叉树五:层序遍历
- 快速排序
- 数据结构实验之二叉树三:统计叶子数
- 数据结构实验之二叉树二:遍历二叉树
- 数据结构实践——操作用邻接表存储的图
- 冒泡排序
- 不相交集合求并的路径压缩
- leetcode 141.Linked List Cycle
- 数据结构实验之二叉树六:哈夫曼编码
- 数据结构学习之双向链表结构
- 不相交集的求并算法(按集合大小求并+按高度求并)
- 不相交集ADT(联机算法 + 脱机算法)
- 树的预备知识
- [刷题丶数据结构]1.栈和队列
- 数据结构基础5.1:树的遍历(递归与非递归实现)
- UVa 210 Concurrency Simulator(双端队列)
- Give Me the Number(将字符串的值变为数)
- 今日学习札记——数据结构基础(11.7)
- 使用后缀表达式写的数据结构实验,实现计算器
- C语言/单片机基础训练之数据结构