二叉树创建、遍历、求深度--C语言实现
来源:互联网 发布:mac系统pages怎么保存 编辑:程序博客网 时间:2024/05/17 23:36
#include <stdio.h>#include <stdlib.h>#include <malloc.h>typedef int ElemType; //数据类型typedef int Status; //返回值类型//定义二叉树结构typedef struct BiTNode{ElemType data; //数据域struct BiTNode*lChild, *rChlid; //左右子树域}BiTNode, *BiTree;//先序创建二叉树Status CreateBiTree(BiTree *T){ElemType ch;ElemType temp;scanf("%d", &ch);temp = getchar();if (-1 == ch)*T = NULL;else{*T = (BiTree)malloc(sizeof(BiTNode));if (!(*T))exit(-1);(*T)->data = ch;printf("输入%d的左子节点:", ch);CreateBiTree(&(*T)->lChild);printf("输入%d的右子节点:", ch);CreateBiTree(&(*T)->rChlid);}return 1;}//先序遍历二叉树void TraverseBiTree(BiTree T){if (NULL == T)return ;printf("%d ", T->data);TraverseBiTree(T->lChild);TraverseBiTree(T->rChlid);}//中序遍历二叉树void InOrderBiTree(BiTree T){if (NULL == T)return ;InOrderBiTree(T->lChild);printf("%d ", T->data);InOrderBiTree(T->rChlid);}//后序遍历二叉树void PostOrderBiTree(BiTree T){if (NULL == T)return ;PostOrderBiTree(T->lChild);PostOrderBiTree(T->rChlid);printf("%d ", T->data);}//二叉树的深度int TreeDeep(BiTree T){int deep = 0;if(T){int leftdeep = TreeDeep(T->lChild);int rightdeep = TreeDeep(T->rChlid);deep = leftdeep>=rightdeep?leftdeep+1:rightdeep+1;}return deep;}//主函数int main(void){BiTree T;BiTree *p = (BiTree*)malloc(sizeof(BiTree));int deepth;printf("请输入第一个结点的值,-1表示没有叶结点:\n");CreateBiTree(&T);printf("先序遍历二叉树:\n");TraverseBiTree(T);printf("\n");printf("中序遍历二叉树:\n");InOrderBiTree(T);printf("\n");printf("后序遍历二叉树:\n");PostOrderBiTree(T);printf("\n");deepth=TreeDeep(T);printf("树的深度为:%d",deepth);printf("\n");return 0;}
0 1
- 二叉树创建、遍历、求深度--C语言实现
- C语言实现二叉树的基本操作---创建、遍历、求深度、求叶子结点
- C语言实现二叉树的基本操作---创建、遍历、求深度、求叶子结点
- 八.二叉树各种操作的C语言实现 深度遍历求深度,广度遍历求深度,交换左右子树,求叶子节点数
- [数据结构]二叉树遍历、求深度C语言的简单实现
- C语言二叉树创建、遍历、深度、叶子节点
- java二叉树实现、遍历、求深度
- C二叉树的基本操作---创建、遍历、求深度、求叶子结点
- 二叉树的创建与遍历(C语言实现)
- c语言实现二叉树先序,中序,后序(递归),层次遍历,求叶子节点个数及树的深度,下一篇写非递归的遍历
- 二叉树创建,遍历,求深度详解(递归方法)
- c语言二叉树创建及遍历
- C语言建立二叉数并遍历,求深度,求叶子数
- 递归实现二叉树遍历以及求最大深度
- 二叉树的创建、前/中/后序遍历、按层遍历C语言实现
- C语言实现二叉树的各种遍历及求解深度
- C语言实现二叉树的各种遍历及求解深度
- 二叉树遍历及C语言实现
- 怎样构造一个正确高效的C++的类的拷贝构造函数和赋值函数
- 四个例子实战讲解.htaccess文件rewrite规则
- 马云恨马化腾,马化腾恨周鸿祎,周鸿祎恨李彦宏,贵圈真乱!
- Office Visio 2013、Office Project Pro 2013 简体中文大客户版32位、64位下载
- 四种方案解决ScrollView嵌套ListView问题
- 二叉树创建、遍历、求深度--C语言实现
- 爱我的人违法了怎么办
- MyEclipse6.5-8.5序列号生成代码
- C语言经典算法100例-020-小球自由下落问题
- dns windows缓存 自动刷新
- POCO C++ 1.4.2 Win7 VS2010安装配置
- 树莓派usb无线网卡配置(自动连接wifi)
- 集群应用及运维经验小结
- CentOS6里面安装Ngnix