search(t, key)
if (key < t - key)
else
void insertbst(t, key)
else if (t == key)
else if (t > key)
insertbst(t->lchild, key);
else
insertbst(t->rchild, key);
}
void createbst(bstree& t)
}
typedef struct bstnode
* bstree;
int main()
void insertbst(bstree& t, int key)
else if (t->data == key)
else if (t->data > key)
else
}
void insertbst(bstree& t, int key)
else if (t->data == key)
else if (t->data > key)
else
}
void inorder(bstree t)
}
直接刪除該節點
用其左子樹或者右子樹代替它,用其父結點指向其子節點
用其前驅或後驅節點替代,並將其前驅節點或後驅節點刪掉
delete(t,key)
else if (找到)
else if (key < t->data)
else
}
#includeusing namespace std;
typedef struct bstnode
* bstree;
void insertbst(bstree& t, int key)
else if (t->data == key)
else if (t->data > key)
else }
void createbst(bstree& t)
}void inorder(bstree t)
}int main()
二叉排序樹的實現
二叉排序樹是一顆特殊的二叉樹 對於樹上的任意乙個結點,根節點的值一定大於其左子樹上的任意結點的值,一定小於其右子樹上任意結點的數值。所以我們可以插入實現二叉排序樹,思路可以這樣 1 若當前樹為空,則x為根節點 2 如果樹不為空,比較根節點與之大小,若插入值小於根節點,就繼續比較跟節點的左子樹,即最終...
二叉排序樹的實現
二叉排序 搜尋 樹是以關鍵碼為結點的二叉樹,其性質 如果任一結點的左子樹非空,則左子樹的所有結點的關鍵碼都小於根結點的關鍵碼 如果任一結點的右子樹非空,則右子樹的所有結點的關鍵碼都大於根結點的關鍵碼。二叉排序樹的儲存結構如下,typedef struct binsortnode pbinsortno...
二叉排序樹的實現
包括二叉排序樹的增加 遍歷和刪除 include include typedef int mytype 二叉排序樹 typedef struct structtreebtree btree init void addchild btree tree,int num void printtree bt...