Thêm mộtmột phầnphần tửtử xx vàovào câycây
ThêmThêm mộtmột phầnphần tửtử xx vàovào câycây::
ViệcViệc thêmthêm mộtmột phầnphần tửtử XX vàovào câycây phảiphải bảobảo đảmđảm điềuđiều
kiện
kiện ràngràng buộcbuộc củacủa CNPTKCNPTK. . TaTa cĩcĩ thểthể thêmthêm vàovào nhiềunhiều chỗ
chỗ kháckhác nhaunhau trêntrên câycây, , nhưngnhưng nếunếu thêmthêm vàovào mộtmột nútnút
ngồi
ngồi sẽsẽ làlà tiệntiện lợilợi nhấtnhất dodo tata cĩcĩ thểthể thựcthực hiênhiên quáquá
trình
trình tươngtương tựtự thaothao táctác tìmtìm kiếmkiếm. . KhiKhi chấmchấm dứtdứt quáquá
trình
trình tìmtìm kiếmkiếm cũngcũng chínhchính làlà lúclúc tìmtìm đượcđược chỗchỗ cầncần
thêm
thêm. .
HàmHàm insertinsert trảtrả vềvề giágiá trịtrị ––1, 0, 1 1, 0, 1 khikhi khơngkhơng đủđủ bộbộ
nhớ
Cấu trúc Dữ liệu - Cấu trúc cây 61
Thêm
Thêm mộtmột phầnphần tửtử xx vàovào câycây
int insertNode(TREE &root, Data X) { if (root) {
if(root->data == X) return 0; // đã cĩ
if(root->data > X)
return insertNode(root->left, X); else
return insertNode(root->right, X); }
root = new Node;
if (root == NULL) return -1; // thiếu bộ nhớ
root->data = X;
root->left = root->right = NULL; return 1; // thêm vào thành cơng
Cấu trúc Dữ liệu - Cấu trúc cây 62
Thêm
Thêm mộtmột phầnphần tửtử xx vàovào câycây
4418 88 18 88 13 37 59 108 15 23 40 55 71 Thêm X=50 44 < X 88 > X 59 > X 50 55 > X
Cấu trúc Dữ liệu - Cấu trúc cây 63