?? 二叉樹類.h
字號:
//定義二叉樹的頭文件“二叉樹類.h”
//定義二叉樹結點值的類型為字符型
typedef char ElemType;
//定義二叉樹結點類型
struct BTreeNode{
ElemType data;
BTreeNode* left;
BTreeNode* right;
};
//根據存于字符數組a的二叉樹廣義表建立對應的二叉樹存儲結構
void CreateBTree(BTreeNode* & BT,char* a);
//前序遍歷算法
void PreOrder(BTreeNode* BT);
//中序遍歷算法
void InOrder(BTreeNode* BT);
//后序遍歷算法
void PostOrder(BTreeNode* BT);
//按層遍歷算法
void LevelOrder(BTreeNode* BT);
//從二叉樹中查找值為x的結點,若存在則由x帶回完整值并返回真,否則返回假
bool FindBTree(BTreeNode* BT, ElemType& x);
//按照二叉樹的一種表示方法輸出整個二叉樹
void PrintBTree(BTreeNode* BT);
//清除二叉樹,使之成為一棵空樹
void ClearBTree(BTreeNode* BT);
//求二叉樹的深度
int BTreeDepth(BTreeNode* BT);
//求二叉樹中所有結點數
int BTreeCount(BTreeNode* BT);
//求二叉樹中所有葉子結點數
int BTreeLeafCount(BTreeNode* BT);
//返回x結點所處的層號,若不存在值為x的結點則返回0
int NodeLevel(BTreeNode* BT,ElemType x);
//定義二叉樹類
class BinaryTree{
BTreeNode* root;
public:
//初始化二叉樹為空
BinaryTree(){root=NULL;}
//根據存于字符數組a的二叉樹廣義表建立對應的二叉樹存儲結構
void CreateBTree(char* a){::CreateBTree(root,a);}
//判斷二叉樹是否為空
bool BtreeEmpty(){return root==NULL;}
//按任意一種遞歸遍歷次序輸出二叉樹中所有結點
void TraverseBTree(int mark);
//求二叉樹的深度
int BTreeDepth(){return ::BTreeDepth(root);}
//求二叉樹所有結點數
int BTreeCount(){return ::BTreeCount(root);}
//求二叉樹中所有葉子結點數
int BTreeLeafCount(){return ::BTreeLeafCount(root);}
//按照二叉樹中查找的一種表示方法輸出整個二叉樹
void PrintBTree(){::PrintBTree(root);}
//從二叉樹中查找值為item的結點
bool FindBTree(ElemType& item){return ::FindBTree(root,item);}
//返回x結點所處的層號,若不存在值為x的結點則返回0
int NodeLevel(ElemType x){return ::NodeLevel(root,x);}
//清除二叉樹
~BinaryTree(){::ClearBTree(root);}
};
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -