#include
using namespace std;
typedef struct bstnodebstnode,*linkbst;
class bst
void inorder(bstnode *t);//中序遍歷二叉樹
void insert(bstnode *&t,int key);//插入關鍵字key
bool exist(bstnode *t,int key);//判斷key是否在二叉樹t中
bstnode *search(bstnode *t,int key);//查詢關健詞key
void createbitree(int d[ ],int n); //n個資料在陣列d中,t為二叉排序樹根
void deletebst(bstnode* &t,int key);//刪除data為key的結點
void deletex( bstnode *&p);
int countx(bstnode *t,int key);//計算關鍵字key的深度
};void bst::insert(bstnode *&t, int key)
if(keydata) insert(t->lchild,key);
else insert(t->rchild, key );
}void bst::createbitree(int d[ ],int n)
}bool bst::exist(bstnode *t,int key)
bstnode *bst::search(bstnode *t,int key)
void bst::deletebst(bstnode* &t,int key)
}void bst::deletex(bstnode *&p)
else if(p->lchild==null)
else
p->data=s->data;
if(q!=p) q->rchild=s->lchild;
else q->lchild=s->lchild;
delete s;}}
int bst::countx(bstnode *t,int key)
}int main();
bt.createbitree(a,sizeof(a)/sizeof(int));
bt.inorder(bt.t);
coutbt.deletebst(bt.t,40);
bt.inorder(bt.t);
cout include using namespace std template struct binode 二叉樹的結點結構 const int stacksize 20 template class bitree 前置條件 無 輸 入 無 功 能 呼叫create 函式 輸 出 無 後置條件 無 tem... 目錄 table of contents 類的部分實現 二叉樹是一種特殊的樹,在上一節中也介紹了樹的其他形式,例如 霍夫曼樹,b樹等。其中,二叉樹的常用操作有 1.確定樹高 2.確定元素數目 3.複製 4.顯示或列印二叉樹 5.確定兩顆二叉樹是否一樣 6.刪除整顆樹 這些操作都可以通過有步驟的遍歷二... 在二叉樹中每個節點最多只能有兩個子節點。即左子節點和有子節點。在二叉樹中最重要的操作應當是遍歷。即按照某一順序訪問二叉樹中的每乙個節點。一般有如下幾種遍歷方法 1 前序遍歷,即先訪問根幾點,然後再訪問左子節點,最後訪問右子節點。2 中序遍歷,即先訪問左子節點,然後再訪問根節點,最後訪問右子節點。3 ...C 資料結構之二叉樹遞迴操作
資料結構之二叉樹 C 二
資料結構之二叉樹