?? bintree.h
字號:
#ifndef BinTree_H
#define BinTree_H
#include <iostream>
#include <vector>
#include <stack>
using namespace std;
// 二叉樹結(jié)點的結(jié)構(gòu)定義
template <class T>
struct BinTreeNode
{ T data;
BinTreeNode<T> *lchild, *rchild;
};
enum TravFlag{START,LEFT,RIGHT};
template <class T>
class Status // 遍歷狀態(tài)類
{
public:
BinTreeNode<T> *p; // 遍歷中的位置
TravFlag flag; // 遍歷中的方向
void NextFlag()
{ if(flag==START) { flag=LEFT; return; }
if(flag==LEFT ) { flag=RIGHT; return; }
}
};
// 二叉樹類定義
template <class T>
class BinTree
{
BinTreeNode<T>* m_Root;
public:
BinTree();
~BinTree();
BinTree(vector<T> &pre); // 根據(jù)pre創(chuàng)建二叉樹
void Free(); // 釋放整個樹的空間
void TraverseDFS(int kind); // 深度遍歷二叉樹
private:
// 僅與CreateByPre函數(shù)相關(guān)的私有成員
vector<T> m_pre; int m_prei;
BinTreeNode<T> *DoCreateByPre();
// 僅與Free函數(shù)相關(guān)的私有成員
void DoFree(BinTreeNode<T> *p);
};
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -