資料結構之二叉樹的基本操作(C )

2021-08-21 23:35:55 字數 1256 閱讀 8947

#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

C 資料結構之二叉樹遞迴操作

include using namespace std template struct binode 二叉樹的結點結構 const int stacksize 20 template class bitree 前置條件 無 輸 入 無 功 能 呼叫create 函式 輸 出 無 後置條件 無 tem...

資料結構之二叉樹 C 二

目錄 table of contents 類的部分實現 二叉樹是一種特殊的樹,在上一節中也介紹了樹的其他形式,例如 霍夫曼樹,b樹等。其中,二叉樹的常用操作有 1.確定樹高 2.確定元素數目 3.複製 4.顯示或列印二叉樹 5.確定兩顆二叉樹是否一樣 6.刪除整顆樹 這些操作都可以通過有步驟的遍歷二...

資料結構之二叉樹

在二叉樹中每個節點最多只能有兩個子節點。即左子節點和有子節點。在二叉樹中最重要的操作應當是遍歷。即按照某一順序訪問二叉樹中的每乙個節點。一般有如下幾種遍歷方法 1 前序遍歷,即先訪問根幾點,然後再訪問左子節點,最後訪問右子節點。2 中序遍歷,即先訪問左子節點,然後再訪問根節點,最後訪問右子節點。3 ...