数据结构实验之二叉树的建立与遍历
来源:互联网 发布:原油看盘软件 编辑:程序博客网 时间:2024/05/18 06:39
题目描述
输入
输出
第1行输出中序遍历序列;
第2行输出后序遍历序列;
第3行输出叶子节点个数;
第4行输出二叉树深度。
示例输入
abc,,de,g,,f,,,
示例输出
cbegdfa
cgefdba
3
5
#include <stdio.h>#include <stdlib.h>char s[60];int i;int count;struct node{ char data; struct node*l,*r;};struct node*creat(struct node*t){ if(s[i]==',') { t=NULL; i++; } else { t=(struct node*)malloc(sizeof(struct node)); t->data=s[i]; i++; t->l=creat(t->l); t->r=creat(t->r); }return t;}void inorder(struct node*t){ if(t) { inorder(t->l); printf("%c",t->data); inorder(t->r); }}void paorder(struct node*t){ if(t) { paorder(t->l); paorder(t->r); printf("%c",t->data); }}void shu(struct node*t){ if(t) { if((!t->l)&&(!t->r)) { count++;
} shu(t->l); shu(t->r); }
}int depth(struct node *t){ int ldepth,rdepth; if(!t) return 0; else { ldepth=depth(t->l); rdepth=depth(t->r);
if(ldepth>rdepth) return ldepth+1; else return rdepth+1; }}int main(){ struct node*t; int d; i=0; count=0; gets(s); t=creat(t); inorder(t); printf("\n"); paorder(t); printf("\n"); shu(t); printf("%d\n",count); d=depth(t); printf("%d\n",d); return 0;}
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 2136 数据结构实验之二叉树的建立与遍历
- 2136 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- sdutoj2136 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历 SDUT
- 朴素贝叶斯分类
- 深度学习caffe平台--train_val.prototxt文件中视觉层(Vision Layers)层及参数详解
- ffmpeg源代码解读:ffurl_alloc
- 通过CAGradientLayer制作渐变色效果【原创】
- python中*args **kw到底是什么意思?
- 数据结构实验之二叉树的建立与遍历
- HTML5 视频播放
- Web.xml配置详解之context-param
- 安卓实战开发之JNI入门及高效的配置
- hdu-1216-Assistance Required
- 学期总结
- 06 为什么会有继承?为什么会有super?
- 千万别用MongoDB?
- libevent代码例子---- echo server