二叉樹 二叉鍊錶

2021-07-12 03:45:45 字數 1459 閱讀 2884

#include using namespace std;

typedef char elemtype;

int n=0;

typedef struct binode

binode;

class bitree

~bitree()

binode * getroot();

void preorder(binode *root); //前序遍歷遞迴演算法

void preorder2(binode *root); //前序遍歷非遞迴演算法

void inorder(binode *root); //中序遍歷遞迴演算法

void inorder2(binode *root); //中序遍歷非遞迴演算法

void postorder(binode *root); //後序遍歷遞迴演算法

void postorder2(binode *root); //後序遍歷非遞迴演算法

void leverorder(binode *root); //層序遍歷

int depth(binode *root) ; //求深度

void count(binode *root); //求二叉樹的結點個數

private:

binode *root;

binode* creat();

void release(binode *root);

};binode* bitree::getroot( )

void bitree::preorder(binode *root)

}void bitree::preorder2(binode *root)

if (top!= -1) }}

void bitree::inorder (binode *root)//

}void bitree::inorder2(binode *root)

if (top!=-1) //棧非空

}}void bitree::postorder(binode *root)

}void bitree::leverorder(binode *root)}/*

*前置條件:空二叉樹

*輸 入:資料ch;

*功 能:初始化一棵二叉樹,構造函式呼叫

*輸 出:無

*後置條件:產生一棵二叉樹

*/binode* bitree::creat()

return root;

}void bitree::count(binode *root) //n為全域性量並已初始化為0

}int bitree::depth(binode *root) //求二叉樹深度

}void bitree::release(binode *root)

}void main()

二叉樹(二叉鍊錶實現)

二叉鍊錶結構的二叉樹模型,棧用自己寫的模版,佇列就不了 直接用stl的,不然 太長了 檔案 tree.h include include includeusing namespace std templateclass my stack templateclass node 結點類 node t d...

二叉鍊錶儲存二叉樹

鏈式儲存結構 二叉樹的鏈式儲存結構是指,用鍊錶來表示一棵二叉樹,即用鏈來指示元素的邏輯關係。其中,data域存放某結點的資料資訊 lchild與rchild分別存放指向左孩子和右孩子的指標,當左孩子或右孩子不存在時,相應指標域值為空 用符號 或null表示 利用這樣的結點結構表示的二叉樹的鏈式儲存結...

二叉鍊錶實現二叉樹

二叉樹的遍歷 前序遍歷,中序遍歷,後序遍歷,層序遍歷 二叉鍊錶的儲存實現 1 定義結構體,儲存二叉樹的結點資料,該結點的左兒子,右兒子。2 每乙個函式都要有乙個對應的私有成員 includeusing namespace std templatestruct binode templateclass...