二叉树
来源:互联网 发布:森林防火预警软件 编辑:程序博客网 时间:2024/05/08 18:12
二叉树是树的特殊一种,具有如下特点:
1、每个结点最多有两颗子树,结点的度最大为2
2、左子树和右子树是有顺序的,次序不能颠倒
3、即使某结点只有一个子树,也要区分左右子树
二叉树的建立
//创建树//按先后次序输入二叉树中结点的值(一个字符),#表示空树//构造二叉链表表示的二叉树BiTree CreateTree(BiTree t){ char ch; scanf("%c", &ch); if(ch == '#') { t = NULL; } else { t = (BitNode *)malloc(sizeof(BitNode)); if(t == NULL) { fprintf(stderr, "malloc() error in CreateTree.\n"); return; } t->data = ch; //生成根结点 t->lchild = CreateTree(t->lchild); //构造左子树 t->rchild = CreateTree(t->rchild); //构造右子树 } return t;}
遍历方法
先序遍历
//先序遍历void PreOrderTraverse(BiTree t){ //注意跳出条件 if(t != NULL) { //注意访问语句顺序 printf("%c ", t->data); PreOrderTraverse(t->lchild); PreOrderTraverse(t->rchild); }}中序遍历
//中序遍历void InOrderTraverse(BiTree t){ if(t != NULL) { InOrderTraverse(t->lchild); printf("%c ", t->data); InOrderTraverse(t->rchild); }}后序遍历
//后序遍历void PostOrderTraverse(BiTree t){ if(t != NULL) { PostOrderTraverse(t->lchild); PostOrderTraverse(t->rchild); printf("%c ", t->data); }}
阅读全文
0 0
- 二叉树、二叉堆
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 正态分布随机数的产生
- JAVASE之面向对象
- 二叉树 基础
- http://blog.csdn.net/wxl1555/article/details/53916856
- 源码学习
- 二叉树
- C++: A computer language but used to express relationship of concepts!
- _sys_exit( int x) { x = x; } 报错
- Internet Explorer
- 可变参数列表求最大值与平均值
- Findmaxmin递归算法实现
- 逻辑运算符与位运算符以及三目运算符
- 笨办法学python习题31 做出决定
- Arduino--读u8lib之I2C代码