1、二叉查詢樹的型別定義
//二叉查詢樹的型別定義typedef int datatype; //結點關鍵碼的資料型別
typedef struct node
bstnode, *bstree;
2、二叉查詢樹的相關操作
//二叉查詢樹上的查詢bstnode * search (bstree root, datatype x,bstnode * & father)
return p;
}//二叉查詢樹的插入
int insert (bstree & root, datatype x)
//二叉查詢樹的刪除
int remove(bstree & root, datatype x)
p->data = s->data;
p = s; //用 *s的值取代 *p的值,再刪 *s
} if(p -> lchild != null) //左子樹非空,記下左子女結點
s = p->lchild; //記下右子女結點
else
s = p->rchild;
if(p == root) //被刪結點為根結點
root = s;
else if(s->data < f->data) //父結點直接鏈結子女結點
f->lchild = s;
else
f->lchild = s;
delete p;
return 1;
}
3、相關演算法
二叉樹 28題 對稱的二叉樹
請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 示例1 輸入 root 1,2,2...
樹與二叉樹的應用 二叉排序樹
1 二叉排序樹的定義 二叉排序樹 簡稱 bst 也稱為 二叉查詢樹 二叉查詢樹或者是一棵空樹,或者是一棵具有下列 特性的非空二叉樹 a.若左子樹非空,則左子樹上所有結點關鍵字值均小於根結點的關鍵字值 b.若右子樹非空,則右子樹上所有結點關鍵子值均大於根結點的關鍵字值 c.左 右子樹本身也分別是一棵二...
二叉樹的應用 二叉樹遍歷的應用
在以上討論的遍歷演算法中,訪問結點的資料域資訊,即操作visite bt data 具有更一般的意義,需根據具體問題,對bt 資料進行不同的操作。下面介紹幾個遍歷操作的典型應用。search bt,x 在bt 為二叉樹的根結點指標的二叉樹中查詢資料元素x。查詢成功時返回該結點的指標 查詢失敗時返回空...