数据结构与二叉树类的定义
我采用链式存储结构来表示二叉树,每一个二叉树节点包含树节点的值、树的左孩子指针、树的右孩子指针:
class BiNode{
public:
char data;
struct BiNode *lchild,*rchild;
};
那么对于一个二叉树来说,只需要存放指向树根节点的指针即可,另外还需要声明二叉树的一些功能,比如遍历方法、求树高等(BiTree.h):
#ifndef BITREE_H_INCLUDED
#define BITREE_H_INCLUDED
#include<iostream>
#include <string>
using namespace std;
class BiNode{
public:
char data;
struct BiNode *lchild,*rchild;
};
class BiTree{
private:
BiNode * root;
int height;
void pre_Order(BiNode * t);
void in_Order(BiNode * t);
void post_Order(BiNode * t);
BiNode* create(string &s ,int&pos);
void get_Height(BiNode *t,int h);
public:
BiTree(){root=NULL;height=0;}
///按照前序遍历序列创建二叉树
void createBiTree(string s);
///前序遍历二叉树
void preOrder();
///中序遍历二叉树
void inOrder();
///后序遍历二叉树(递归方法)