Giáo trình Cấu Trúc Dữ Liệu và Giải Thuật phần 9
B8.1: If (DelNode->BST_Left = NULL) and (DelNode->BST_Right = NULL)
B8.1.1: BSTree = NULL
B8.1.2: Thực hiện B11
// Nếu DelNode có một cây con phải
B8.2: If (DelNode->BST_Left = NULL) and (DelNode->BST_Right != NULL)
B8.2.1: BSTree = BSTree->BST_Right
B8.2.2: DelNode->BST_Right = NULL
B8.2.3: Thực hiện B11
// Nếu DelNode có một cây con trái
B8.3: If (DelNode->BST_Left != NULL) and (DelNode->BST_Right = NULL)
B8.3.1: BSTree = BSTree->BST_Left
B8.3.2: DelNode->BST_Left = NULL
B8.3.3: Thực hiện B11
B9: ELSE // DelNode không phải là nút gốc
// Nếu DelNode là nút lá
B9.1: If (DelNode->BST_Left = NULL) and (DelNode->BST_Right = NULL)
// DelNode là cây con trái của PrDelNode
B9.1.1: if (OnTheLeft = True)
PrDelNode->BST_Left = NULL
B9.1.2: else // DelNode là cây con phải của PrDelNode
PrDelNode->BST_Right = NULL
B9.1.3: Thực hiện B11
// Nếu DelNode có một cây con phải
B9.2: If (DelNode->BST_Left = NULL) and (DelNode->BST_Right != NULL)
B9.2.1: if (OnTheLeft = True)
PrDelNode->BST_Left = DelNode->BST_Right
B9.2.2: else
PrDelNode->BST_Right = DelNode->BST_Right
B9.2.3: DelNode->BST_Right = NULL
B9.2.4: Thực hiện B11
// Nếu DelNode có một cây con trái
B9.3: If (DelNode->BST_Left != NULL) and (DelNode->BST_Right = NULL)
B9.3.1: if (OnTheLeft = True)
PrDelNode->BST_Left = DelNode->BST_Left
B9.3.2: else
PrDelNode->BST_Right = DelNode->BST_Left
B9.3.3: DelNode->BST_Left = NULL
B9.3.4: Thực hiện B11
// Nếu DelNode có hai cây con
B10: If (DelNode->BST_Left != NULL) and (DelNode->BST_Right != NULL)
// Tìm nút trái nhất trong cây con phải của DelNode và nút cha của nó
B10.1: MLNode = DelNode->BST_Right
B10.2: PrMLNode = DelNode
Các file đính kèm theo tài liệu này:
- giao_trinh_ly_thuyet_ctdl_gt_cd_th_split_9.pdf