满二叉树
每一个父结点刚好有两个孩子结点,即每一层结点数都满足 2的(层数-1)次方。
完全二叉树
不满一层的结点的上一层必须满了,且只能从左向右放。
二叉树层次建树
二叉树层次建树借助辅助队列建树,为什么要借助辅助队列建树?在建树时由于不知道是放在左节点还是右结点,借助辅助队列来解决,队列头指向那一个结点就放在那一个结点下面,当这个结点放满时就出队,
//树节点数据结构
typedef char BiElemType;
typedef struct BiTNode {
//BiTNode为结构体名
BiElemType c;//c就是书籍上的data
struct BiTNode* lchild;
struct BiTNode* rchild;
}BiTNode, * BiTree;//声明结构体类型BiTNode=struct BiTNode,BiTree=struct BiTNode*
前序遍历的步骤,先打印根结点中的数据,然后打印左孩子,最后打印右孩子。
以abcdefghij为例,前序遍历结果为:1.abc 2.abdec 3.abdhiec 4.abdhiejcfg
源代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//树节点数据结构
typedef char BiElemType;
type