一、先序遍历
先序遍历从一棵二叉树根节点为起点,沿着二叉树走,每次遇到一个结点时,先读取这个结点,然后读取其左子树的结点,再读取其右子树的结点。在这过程中,遇上每一个结点都按照:根-》左孩子-》右孩子的顺序,直到全部结点遍历完。路上遇到的元素顺序,就是先序遍历的结果。
二、中序遍历
中序遍历可以看成,遇上每一个结点都按照:左孩子-》根-》右孩子的顺序,直到全部结点遍历完。路上遇到的元素顺序,就是中序遍历的结果。
三、中序遍历
后序遍历可以看成,遇上每一个结点都按照:左孩子-》右孩子-》根的顺序,直到全部结点遍历完。路上遇到的元素顺序,就是后序遍历的结果。
四、层次遍历
层次遍历很好理解,就是从根节点开始,一层一层,从上到下,每层从左到右,依次读取结点值。
五、代码
#include <time.h>
#include"BTree.h"
typedef int BTDataType;
//结点
typedef struct BinaryTreeNode
{
BTDataType data;
struct BinaryTreeNode* left;
struct BinaryTreeNode* right;
}BTNode;
//前序遍历,递归算法
void PrevOrder(BTNode* root) {
if (root == NULL) {
printf("NULL ");
return;
}