递归遍历
#include<iostream>
using namespace std;
//二叉树
typedef struct BINARYNODE
{
char ch;
struct BINARYNODE* lchaild; //左子树
struct BINARYNODE* rchaild; //右子树
}BinaryNode;
//递归
void Recursion(BinaryNode* root)
{
if (root == NULL)
{
return;
}
//先访问根节点
cout << root->ch<<" ";
//在遍历左子树
Recursion(root->lchaild);
//在遍历右子树
Recursion(root->rchaild);
//前序遍历:根 左 右
//中序遍历:左 根 右
//后续遍历:左 右 根
}
void CreateBinaryTree()
{
//创建节点
BinaryNode node1 = { 'a',NULL,NULL };
BinaryNode node2 = { 'b',NULL,NULL };
BinaryNode node3 = { 'c',NULL,NULL };
BinaryNode node4 = { 'd',NULL,NULL };
BinaryNode node5 = { 'e',NULL,NULL };
BinaryNode node6 = { 'f',NULL,NULL };
BinaryNode node7 = { 'g',NULL,NULL };
BinaryNode node8 = { 'h',NULL,NULL };
//建立节点关系
node1.lchaild = &node2;
node1.rchaild = &node6;
node2.rchaild = &node3;
node3.lchaild = &node4;
node3.rchaild = &node5;
node6.rchaild = &node7;
node7.lchaild = &node8;
cout << "前序遍历" << endl