二叉树的创建与遍历
以下图的二叉树为例:
Binary_Tree.h
#ifndef BINARY_TREE_H
#define BINARY_TREE_H
typedef char Element;
//二叉链式树节点
typedef struct BtNode
{
Element data; //数据域
struct BtNode* leftchild; //左孩子
struct BtNode* rightchild; //右孩子
}BtNode, *BinaryTree;
#endif
创建方式一
Bt.cpp
#include"Binary_Tree.h"
#include <iostream>
using namespace std;
//前序遍历二叉树
void PreOrder(BinaryTree root)
{
if (root == NULL) return;
cout << root->data << " ";
PreOrder(root->leftchild);
PreOrder(root->rightchild);
}
//中序遍历二叉树
void MidOrder(BinaryTree root)
{
if (root == NULL) return;
MidOrder(root->leftchild);
cout << root->data << " ";
MidOrder(root->rightchild);
}
//后序遍历二叉树
void LastOrder(BinaryTree root)
{
if (root == NULL) return;
LastOrder(root->leftchild);
LastOrder(root->rightchild);
cout << root->data << " "