還要認真學習啊,功力不夠,要多向師兄師姐學習,自己也要努力。
#includeusing namespace std;
//首先進行二叉樹的一些操作的**,補上之前欠下的東西
class bintree;
class treenode
class treenode(int element,treenode* lchild,treenode *rchild,treenode *parent):key(element),left(lchild),right(rchild),p(parent){}
friend class bintree;
};class bintree
//對這個根節點進行賦值,一開始在這裡報錯,說沒有預設的建構函式,由於這裡是用乙個現成的t去
//作為構造的物件,所以會出現這樣的狀況,所以前面構造乙個就可以了
void walk(treenode *x) const;
treenode* search(treenode* x,int k)const ;
treenode* min(treenode* x) const ;
treenode* max(treenode* x)const ;
treenode* successor(treenode* x)const ;
void insert(int k,bintree *t);
void dele(bintree* t,treenode* z);
};void bintree::walk(treenode* x)const//中序遍歷
}treenode* bintree::search(treenode * x,int k)const
treenode * bintree::min(treenode* x) const
treenode* bintree::max(treenode* x)const
treenode* bintree::successor(treenode * x)const
return y;
}void bintree::insert(int k,bintree *t)
z->p=y;
if(y==null)
t->root = z;
else }
void bintree::dele(bintree* t,treenode* z)
delete y; }
int main()
演算法導論之二叉搜尋樹
二叉搜尋樹上的基本操作所花費的時間與這棵樹的高度成正比。二叉搜尋樹中的關鍵字總是以滿足二叉搜尋樹的性質的方式來進行儲存的 設x是二叉搜尋樹中的乙個結點,如果y是x左子樹中的乙個結點,那麼y.key x.key。如果y是x右子樹中的乙個結點,那麼y.key x.key。先序遍歷 中序遍歷 inorde...
演算法導論 二叉查詢樹
部分實現,用insert生成二叉查詢樹。暫無delete函式。建立查詢樹是用insert逐個插入。比較簡陋,希望有所幫助。includeusing namespace std struct node class searchtree void create void insert node newn...
二叉查詢樹(來自演算法導論)
include using namespace std typedef struct treenode treepoint 採用迴圈而非遞迴的插入樹節點。void tree insert treepoint root,int key else x x right if y null 樹為空時 els...