二叉树是一种非常重要的数据结构,它是分支结构的基础,今天本人将写一篇博客来叙述一下其相关的算法以及二叉树的创建过程!
1:二叉树的创建:
主要有 先序,中序,后序,层序创建几种方式,其中前三种建立在二叉树遍历方式的基础上的。
(1):先序创建
先序创建就是先创建根节点,随后依次创建其左子树和右子树,我们可以采用递归的方法来实现,因为二叉树本身就是建立在递归算法的基础上的。
(2):中序和后序创建:
明白了前序创建二叉树的方式,中序和后续我们也可以类比出来,所谓前中后序,就是创建根节点的顺序而已。
(3):层序遍历和创建:
:
以上图片反映的层序遍历的过程,层序遍历是建立在队列的基础上的,首先如果一颗二叉树非空,让根节点入队,如果根节点的左子树后右子树非空,则根节点出队并打印它的数据域的值,左右子树先后入队(谁不空谁入队),随后就是一个递归的过程了。
可见层序遍历是从上到下,从左到右的一个遍历过程。
所以我们也可以层序创建一个二叉树:首先创建根节点,如果根节点的左孩子和右孩子指针没有指向虚结点,则创建左子树和右子树,也是通过递归的方式来创建的。
二叉树代码:
函数文件 Bittree.c:
#include "Bittree.h"
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
tree *Creat(tree* root, tree*(*ptree)(tree *root))
{
root = ptree(