BTVN — CS12.2 cây nhị phân và cây tìm kiếm. Dữ liệu giả định.
Giải nén đủ 7 tệp cùng thư mục. Cần Python 3; không cần thư viện cài thêm.
Mở demo.py trong IDLE và Run Module; hoặc chạy python demo.py.
Mở menu.py: 0 thoát, 1 tra theo tên, 2 thêm/cập nhật tên và giá nguyên dương.
Mở danh_ba.py: 0 thoát, 1 in, 2 tìm, 3 thêm/cập nhật ba trường.
Giá trong menu.inp ghi số nguyên, không phân cách hàng nghìn. Hai trường cách dấu phẩy.
contacts.inp có tên liên hệ, tên đầy đủ, nhãn số mẫu; ba trường cách dấu phẩy.
SO_MAU_01,... là nhãn giả, không phải số để gọi. Không đưa dữ liệu người thật vào mẫu.
Chèn/tìm đều so chuỗi theo Python, phân biệt hoa/thường; nhập đúng dấu như tệp.
Dữ liệu bảng chọn chỉ cập nhật trong bộ nhớ, không lưu ngược tệp sau khi thoát.
Kết quả demo: preorder [8,4,2,6,12,10,14]; inorder [2,4,6,8,10,12,14];
postorder [2,6,4,10,14,12,8]; reverseorder [14,12,10,8,6,4,2].
Chèn 5 tại chỉ số9; tìm11 trả -1; sắp [8,4,8,2] ra [2,4,8,8]; cao3,min2,max14.
Các hàm duyệt nhận out ban đầu là []. Trường hợp rỗng không thêm phần tử.
insert không giữ khóa trùng; insert_repeat dùng khi cần sắp xếp giữ đủ phần tử.
Array theo chỉ số có thể dài khi cây lệch; chỉ thực hành bằng ít khóa.
Tạo bản sao trước khi sửa dữ liệu; đọc phần bài tương ứng để dùng page_rows/price_insert.
