按定义definition创建二叉树的说明
发布时间:2016-12-18 14:14:15
发布时间:2016-12-18 14:14:15
操作CreateBiTree(T,definition)的实现
首先要清楚逻辑上怎样唯一地确定二叉树,课堂上讲了3类方法。下面以第一类为例。
即带空子树的先序遍历序列。由于实验中二叉链表作为二叉树的物理结构,这样就可以确定CreateBiTree(T,definetion)的说明为
CreateBiTree(BiTree T,ElemType definition[])
这里BiTree是结点指针类型,definition是数据元素数组,这个数组无法给出数组的大小(像学C语言时,整数序列排序,sort(int a,int n))。这个就要求输入时不要出错。
具体在菜单选择时:
case 3:
1. 输入带空子树的先序遍历序列:definition;
2. 调用CreateBiTree(T,definition)。
实现操作CreateBiTree功能,可用多个函数实现。
CreateBiTree(BiTree T,ElemType definition[]){
。。。。。
调用P131的创建函数CreatBitree1
}
CreatBitree1(BiTree T, definition[](第2个参数提供结点数据definition,思考一下具体形式,甚至为了方便取数组元素,设置3个参数都可以))
{
依次输入definition的结点数据ch
根据ch的值,按教材流程处理。
}
以上是假定设计时,规定了按树的定义definition创建二叉树,提供了这个统一的使用方式,使用者按这个统一的接口使用创建操作、创建二叉树。
当然,如果直接按书上的程序,也能实现创建二叉树,也不会影响到后续的其它操作。但是这个调用接口被自行改变了,就显得不规范。