用c实现二叉树
来源:互联网 发布:笔记本找不到wifi网络 编辑:程序博客网 时间:2024/05/02 18:11
转自:http://blog.csdn.net/huangsir2011/article/details/8108522
- 用c实现如下的二叉树
用c实现如下的二叉树
- <IMG alt="" src="http://img.my.csdn.net/uploads/201210/24/1351079750_7455.png">
- #include "stdio.h"
- #include "malloc.h"
- struct btree
- {
- char data;
- struct btree *lp;
- struct btree *rp;
- };
- struct btree * init();
- void pretraverse(struct btree *);
- void intraverse(struct btree *);
- void postraverse(struct btree *);
- int main()
- {
- struct btree * p=init();
- printf("前序遍历的结果为:\n");
- pretraverse(p);
- printf("中序遍历的结果为:\n");
- intraverse(p);
- printf("后序遍历的结果为:\n");
- postraverse(p);
- return 0;
- }
- struct btree * init()
- {
- struct btree *a=(struct btree *)malloc(sizeof(struct btree));
- struct btree *b=(struct btree *)malloc(sizeof(struct btree));
- struct btree *c=(struct btree *)malloc(sizeof(struct btree));
- struct btree *d=(struct btree *)malloc(sizeof(struct btree));
- struct btree *e=(struct btree *)malloc(sizeof(struct btree));
- a->data='a';
- b->data='b';
- c->data='c';
- d->data='d';
- e->data='e';
- a->lp=b;
- b->lp=NULL;
- b->rp=NULL;
- a->rp=c;
- c->lp=d;
- d->lp=NULL;
- d->rp=NULL;
- c->rp=e;
- e->lp=NULL;
- e->rp=NULL;
- return a;
- }
- void pretraverse(struct btree *p)
- {
- printf("%c\t",p->data);
- if(NULL!=p->lp)
- {
- pretraverse(p->lp);
- }
- if(NULL!=p->rp)
- {
- pretraverse(p->rp);
- }
- }
- void intraverse(struct btree *p)
- {
- if(NULL!=p->lp)
- {
- intraverse(p->lp);
- }
- printf("%c\t",p->data);
- if(NULL!=p->rp)
- {
- intraverse(p->rp);
- }
- }
- void postraverse(struct btree *p)
- {
- if(NULL!=p->lp)
- {
- postraverse(p->lp);
- }
- if(NULL!=p->rp)
- {
- postraverse(p->rp);
- }
- printf("%c\t",p->data);
- }
#include "stdio.h"#include "malloc.h"struct btree{char data;struct btree *lp;struct btree *rp;};struct btree * init();void pretraverse(struct btree *);void intraverse(struct btree *);void postraverse(struct btree *);int main(){struct btree * p=init();printf("前序遍历的结果为:\n");pretraverse(p);printf("中序遍历的结果为:\n");intraverse(p);printf("后序遍历的结果为:\n");postraverse(p);return 0;}struct btree * init(){struct btree *a=(struct btree *)malloc(sizeof(struct btree));struct btree *b=(struct btree *)malloc(sizeof(struct btree));struct btree *c=(struct btree *)malloc(sizeof(struct btree));struct btree *d=(struct btree *)malloc(sizeof(struct btree));struct btree *e=(struct btree *)malloc(sizeof(struct btree));a->data='a';b->data='b';c->data='c';d->data='d';e->data='e';a->lp=b;b->lp=NULL;b->rp=NULL;a->rp=c;c->lp=d;d->lp=NULL;d->rp=NULL;c->rp=e;e->lp=NULL;e->rp=NULL;return a;}void pretraverse(struct btree *p){printf("%c\t",p->data);if(NULL!=p->lp){pretraverse(p->lp);}if(NULL!=p->rp){pretraverse(p->rp);}}void intraverse(struct btree *p){if(NULL!=p->lp){intraverse(p->lp);}printf("%c\t",p->data);if(NULL!=p->rp){intraverse(p->rp);}}void postraverse(struct btree *p){if(NULL!=p->lp){postraverse(p->lp);}if(NULL!=p->rp){postraverse(p->rp);}printf("%c\t",p->data);}
- 用c实现二叉树
- 用c实现二叉树
- 二叉树 c实现
- 二叉树 C实现
- 二叉树 c 实现
- 用栈实现二叉树 C&java
- 【二叉查找树】c实现
- C语言实现二叉树
- 二叉树递归C实现
- C语言实现二叉树
- C语言实现二叉树
- [C++] 实现二叉搜索树
- C语言实现二叉树
- 【c++】简单实现二叉树
- 二叉树数组实现[C/C++]代码
- 用c语言编程实现二叉树的建立和遍历二叉树
- 二叉树系列:初探二叉树,c语言实现
- c语言二叉树和二叉搜索树的实现
- POJ 1836 Alignment
- .NET框架
- 雨和风
- 一段英文翻译所想
- Sqlite数据库的Unicode排序
- 用c实现二叉树
- 正则表达式中的特殊字符
- BCGControlBar创建多种仪表(Gauge)类型(demo下载)
- 门户级网站统一会员与用户中心数据拓发展的三个阶段之研究
- IoC控制反转--管理Bean
- notepad++ url encode/decode 的插件是: MIME tools
- C#中的委托和事件
- BeanFactory 和ApplicationContext(Bean工厂和应用上下文)
- Disney的小鳄鱼爱洗澡在网页版