二叉树的实现(一)

来源:互联网 发布:测绘数据泄密案例 编辑:程序博客网 时间:2024/06/05 13:35

一、二叉树的结点BintreeNode成员

       二叉树结点类型中的成员:数据域、左子树、右子树

         二叉树类型:只要知道一个根节点root,就可以对整个二叉树结构清晰了解,也可以设置一个结束标识符stop_flag。

        初始化二叉树:init_bintree()

二、创建二叉树

1.创建二叉树函数,无返回值,设置标识符以标识符结束

       首先给一个接口函数,通过把二叉树传进来, void create_bintree(Bintree bt,ElemType flag),再把二叉树的根节点传出去

       然后再给一个创建函数,通过对二叉树额根节点进行操作,主要思想利用递归,输入为'#',返回NULL,否者创建结点,然后以这个结点为根节点进行左子树的创建,再进行右子树的创建

       注意:此时传进来的变量类型是指向节点类型的指针类型,并且要通过该函数对二叉树进行创建(也就是说要通过形参改变实参:两种方式 1引用2传址)这里的实参是一个指向结点类型的指针类型,所以说,要通过形参对实参改变传地址,或者引用。

2.创建标识符,函数无返回值,以字符串传递

首先一个接口函数,把二叉树和字符串传进来,再把二叉树的根节点传出去

如果字符串不为'\0'或者不为'#'就开辟空间给data赋值,然后递归

3.返回二叉树根节点

首先一个接口函数,把二叉树和字符串传进来,再把二叉树的根节点传出去

 

如果二叉树的根节点为NULL,直接return NULL,如果字符串不为'\0'或者不为 '#' 就开辟空间给data赋值,然后递归

       如果刚传进来的根节点为空,直接结束主函数,如果刚开始走else分支的话,再给左分支创建利用递归,如果走if分支,直接返回给t->liftChild,然后再创建右子树,以此类推。。。。。。

原创粉丝点击