二叉树的建立及相关算法的实现
Preordertraverse(T,Visit());
初始条件:二叉树 T 存在,Visit 是对节点操作的应用函数。
操作结果:先序遍历 T,对每个节点调用函数 Visit 一次且仅一次。一旦 visit()失
败,则操作失败。
Inordertraverse(T,Visit());
初始条件:二叉树 T 存在,Visit 是对节点操作的应用函数。
操作结果:中序序遍历 T,对每个节点调用函数 Visit 一次且仅一次。一旦 visit()
失败,则操作失败。
Postordertraverse(T,Visit())
初始条件:二叉树 T 存在,Visit 是对节点操作的应用函数。
操作结果:后序遍历 T,对每个节点调用函数 Visit 一次且仅一次。一旦 visit()失
败,则操作失败。
Levelordertraverse(T,Visit())
初始条件:二叉树 T 存在,Visit 是对节点操作的应用函数。
操作结果:层序遍历 T,对每个节点调用函数 Visit 一次且仅一次。一旦 visit()失
败,则操作失败。
}ADT BinaryTree
本程序还包含个函数:
(1) 计算叶子总数函数:int Sumleaf(BiTree T)
(2) 左右子数交换函数:void jiaohuan(BiTree T)
(3) 节点数计算函数:int jiedianshu(BiTree T)
(4) 深度计算函数:int Depth(BiTree T)
(5) 显示二叉树函数:void xianshi(BiTree T)
函数调用图如下:
第一页
主函数
构造二叉树
先
序
遍
历
二
叉
树
中
序
遍
历
二
叉
树
后
序
遍
历
二
叉
树
层
序
遍
历
二
叉
树
输
出
二
叉
树
的
叶
子
数
输
出
二
叉
树
的
深
度
显
示
二
叉
树
非
递
归
先
序
遍
历
二
叉
树
非
递
归
中
序
遍
历
二
叉
树
非
递
归
后
序
遍
历
二
叉
树
左
右
子
树
交
换
输
出
二
叉
树
的
节
点
数
返回