数据结构实验之二叉树的建立与遍历
来源:互联网 发布:手机手柄连接软件 编辑:程序博客网 时间:2024/05/29 19:56
数据结构实验之二叉树的建立与遍历
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
已知一个按先序序列输入的字符序列,如abc,,de,g,,f,,,(其中逗号表示空节点)。请建立二叉树并按中序和后序方式遍历二叉树,最后求出叶子节点个数和二叉树深度。
输入
输入一个长度小于50个字符的字符串。
输出
输出共有4行:
第1行输出中序遍历序列;
第2行输出后序遍历序列;
第3行输出叶子节点个数;
第4行输出二叉树深度。
第1行输出中序遍历序列;
第2行输出后序遍历序列;
第3行输出叶子节点个数;
第4行输出二叉树深度。
示例输入
abc,,de,g,,f,,,
示例输出
cbegdfacgefdba35
提示
来源
ma6174
示例程序
#include<stdio.h> #include<string.h> #include<stdlib.h> int l=0; struct node { int data; struct node *lchild,*rchild; }; struct node *creat(struct node *root,int k) { char c; struct node *p; p=(struct node *)malloc(sizeof(struct node)); c=getchar(); if(c!=',') { p->lchild=NULL; p->rchild=NULL; p->data=c; if(k==0) root=p; if(k==1) root->lchild=p; if(k==2) root->rchild=p; creat(p,1); creat(p,2); } return root; } void houxu(struct node *root) { if(root!=NULL) { houxu(root->lchild); houxu(root->rchild); printf("%c",root->data); } } void zhongxu(struct node *root) { if(root!=NULL) { zhongxu(root->lchild); printf("%c",root->data); zhongxu(root->rchild); } } int leave(struct node *root) { if(root==NULL) return 0; if(root->lchild==NULL&&root->rchild==NULL) return 1; else return leave(root->rchild)+leave(root->lchild); } int deep(struct node *root) { int d=0; if(root!=NULL) { int d1=deep(root->lchild); int d2=deep(root->rchild); d=d1>d2?d1+1:d2+1; } return d; } int main() { int i,j,n,m,k,t; struct node *root; root=(struct node *)malloc(sizeof(struct node)); root=creat(root,0); zhongxu(root); printf("\n"); houxu(root); printf("\n"); printf("%d\n",leave(root)); printf("%d\n",deep(root)); }
0 0
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 2136 数据结构实验之二叉树的建立与遍历
- 2136 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- sdutoj2136 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构实验之二叉树的建立与遍历 SDUT
- AS(AndroidStudio)签名
- VC静态库的创建和使用
- 元组、列表、字典的基础知识和比较(二)
- 基本类型的递减排序简单实现
- aidl 中通过RemoteCallbackList 运用到的回调机制: service回调activity的方法
- 数据结构实验之二叉树的建立与遍历
- 传统存储老矣,新兴存储能当大任否?
- CXF的三种发布方式和客户端调用方法
- hdu 1712 ACboy needs your help
- HDOJ 1528 Card Game Cheater (模拟田忌赛马贪心)
- 多元函数极值及其求法
- 数据结构实验之求二叉树后序遍历和层次遍历
- 可能是计算机理论领域十年来最大的突破
- Linux下目录 /opt 和目录 /usr/local 的区别