二叉树的基本操作
来源:互联网 发布:淘宝店铺视频制作 编辑:程序博客网 时间:2024/06/11 20:24
2017-4-18 9:22
#include<iostream>using namespace std;typedef struct BiTNode{char data;struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;BiTree Creat(){BiTree T;char ch;scanf("%c",&ch);if(ch == '#') T = NULL;else{T = (BiTree)malloc(sizeof(BiTNode));T->data = ch;T->lchild = Creat();T->rchild = Creat();}return T;}int BianLi1(BiTree T) //先序遍历{if(T == NULL)return 0;else{printf("%c ",T->data);if(T->lchild != NULL)BianLi1(T->lchild);if(T->rchild != NULL)BianLi1(T->rchild);}return 1;}int BianLi2(BiTree T) //中序遍历{if(T == NULL)return 0;else{if(T->lchild != NULL)BianLi2(T->lchild);printf("%c ",T->data);if(T->rchild != NULL)BianLi2(T->rchild);}return 1;}int BianLi3(BiTree T) //后序遍历{if(T==NULL)return 0;else{if(T->lchild != NULL)BianLi3(T->lchild);if(T->rchild != NULL)BianLi3(T->rchild);printf("%c ",T->data);}return 1;}int depth(BiTree T) //求二叉树的深度{int depth1,depth2;if(T==NULL)return 0;else{depth1 = depth(T->lchild);depth2 = depth(T->rchild);}if(depth1 > depth2)return (depth1+1);elsereturn (depth2+1);}int main(){BiTree T;int depth_number;T = Creat();BianLi1(T);printf("\n");BianLi2(T);printf("\n");BianLi3(T);printf("\n");depth_number =depth(T);printf("树的深度为:%d\n",depth_number);return 0;}
0 0
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 二叉树的基本操作
- 给某个。c单独添加DEBUG 编译选项
- 业务规则工具drools学习(一)drools简介和下载
- Ubuntu下添加开机启动项的2种方法
- 非阻塞socket下客户端connect + select简单demo
- android——PowerManagerService源码分析
- 二叉树的基本操作
- Nginx简单实现反向代理和负载均衡
- Github搜索技巧-如何使用github找到自己感兴趣的项目
- js学习资料笔记合集,持续学习更新中,欢迎大牛们指点
- ABAP 生成ZIP压缩文件的代码
- android system 签名
- 动态规划总结
- 图的连通
- event