二叉树的建立,遍历和深度检测
来源:互联网 发布:C语言迭代法求立方根 编辑:程序博客网 时间:2024/05/20 15:58
include
include
define OVERFLOW -1
define OK 1
define NULL 0
typedef char ElemType;
typedef int Status;
typedef struct BiTNode {
ElemType data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
Status CreateBiTree(BiTree &T);
void InOrderTraverse(BiTree &T);
void PostOrder(BiTree &T);
void PreOrder(BiTree &T);
Status TreeDepth(BiTree &T);
Status NumberOfNode(BiTree &T);
int main() {
BiTree T;
printf(“please enter some char :”);
CreateBiTree(T);
printf(“\nThe result of inordorTraverse is :”);
InOrderTraverse(T);
printf(“\nThe result of postordorTraverse is :”);
PostOrder(T);
printf(“\nThe result of preordorTraverse is :”);
PreOrder(T);
int depth = TreeDepth(T);printf("\nThe depth of the tree is :%d", depth);int number = NumberOfNode(T);printf("\nThe number of the node is :%d ", number);
}
Status CreateBiTree(BiTree &T) {
char ch;
scanf_s("%c", &ch);if (ch == '#')T = NULL;else { if (!(T = (BiTNode*)malloc(sizeof(BiTNode))))exit(OVERFLOW); T->data = ch; CreateBiTree(T->lchild); CreateBiTree(T->rchild);}return OK;
}//创建二叉树
void InOrderTraverse(BiTree &T) {
if (T) { InOrderTraverse(T->lchild); printf("%c", T->data); InOrderTraverse(T->rchild);}
}//中序遍历
void PostOrder(BiTree &T) {
if (T) {
InOrderTraverse(T->lchild);
InOrderTraverse(T->rchild);
printf(“%c”, T->data);
}
}//后序遍历
void PreOrder(BiTree &T) {
if (T) {
printf(“%c”, T->data);
InOrderTraverse(T->lchild);
InOrderTraverse(T->rchild);
}
}//先序遍历
Status TreeDepth(BiTree &T) {
int ldepth, rdepth;
if (!T)return 0;
ldepth = TreeDepth(T->lchild);
rdepth = TreeDepth(T->rchild);
if (ldepth >= rdepth)return ldepth + 1;
else return rdepth + 1;
}//树的深度
Status NumberOfNode(BiTree &T) {
int number,number1,number2;
if (!T)return 0;
else return NumberOfNode(T->lchild) + NumberOfNode(T->rchild) + 1;
}//树的节点检测
- 二叉树的建立,遍历和深度检测
- 二叉树的建立和深度优先遍历
- 二叉树(遍历、建立、深度)
- 二叉树的建立、遍历、深度、高度及层次遍历
- 递归二叉树建立和遍历及深度计算
- 二叉树的深度优先遍历和深度优先遍历
- 二叉树的递归建立以及深度优先遍历
- 二叉树的建立,遍历,节点个数,深度
- 二叉树的遍历(层遍历和深度遍历)
- 二叉树的建立和遍历
- 二叉树 普通的 建立和遍历
- 二叉树的建立和遍历
- 二叉树的建立和遍历
- Tree 二叉树的建立 和遍历
- 二叉树的建立和遍历
- [转]二叉树的建立和遍历
- 二叉树的建立和遍历
- 二叉树的建立和遍历
- ubuntu下,使用doxygen生成文档
- 练习——LinkedList
- 自学-DelegatingFilterProxy-04
- 关于java播放wav格式音乐问题及代码解释
- 访问不了Linux的操作环境下的Dubbo服务解决办法
- 二叉树的建立,遍历和深度检测
- oracle数据库自带dual浅解
- 基于quartz的调度系统实现
- failed to read artifact descriptor for xx
- java开发微信公众平台-- 服务器配置
- 4-1 Strongly Connected Components (17分)
- Java从数据库中读取Blob对象图片并显示
- 活动被回收时的处理
- 音乐格式问题