1. Trang chủ
  2. » Thể loại khác

Cây nhị phân

3 1 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 60,99 KB

Nội dung

Cây nhị phân Giới thiệu nhị phân Hình 1: Cây nhị phân Như đề cập khái niệm trước Thì nhị phân (binary tree) có bậc Có nghĩa node có bậc tối đa hai Hầu hết khái niệm nhị phân giống hoàn toàn với khái niệm chung (nhánh vào, nhánh ra, node lá, node gốc, node trong, mức node, mức cây, chiều dài đường tới node, chiều dài đường cây, node tiền bối, node hậu bối, node cha, node con, chiều cao node, chiều cao ) Một số khái niệm khác tồn với nhị phân nhị phân đầy đủ (full binary tree) nhị phân hoàn thiện (complete binary tree) Cây nhị phân đầy đủ nhị phân mà node có xác hoăc Hình 2: Cây nhị phân đầy đủ Gọi N là số node ,H là chiề u cao, và E là hệ số cân bằng của một nhi ̣ phân Với chú ý rằng: H = -1 trường hợ p rỗng H = trường hợ p có nhấ t node Ta có ̃ ng kế t luận sau: Quan hệ giư ̃ a N và H Mô tả Hmax =N- Trường hợ p này xảy nhi ̣ phân suy biế n thành dạng tuầ n tự - giố ng với danh sách liên kế t Hmin =log2(N+ 1) -1 Trong trường hợ p nhi ̣ phân hoàn thiện, ở mỗi mức đề u có số lượ ng tố i đa các node Nmin =H+ Trường hợ p này xảy nhi ̣ phân suy biế n thành dạng tuầ n tự - giố ng với danh sách liên kế t Nmax= 2H + 1- Trong trường hợ p nhi ̣ phân hoàn thiện, ở mỗi mức đề u có số lượ ng tố i đa các node E = HL- HR Là sự chênh lệch chiề u cao của trái và phải Một đượ c coi là cân bằng E = hoặc -1 hoặc Cây nhị phân hoàn thiện mà node có (trừ node lá), và các node lá có cùng mức, Ta cũng sẽ thấ y này có hệ số E = 0, tức là độ chênh lệch ở mọi node đề u bằng Hình 3: Cây nhị phân hoàn thiện Cây nhị phân hoàn thiện rấ t đặc biệt Nó cung cấ p ti ̉ lệ tố t nhấ t có thể cho hai thông số là tổ ng số node N và chiề u cao H của Chiề u cao H của một nhi ̣ phân hoàn thiện với N node có giá tri ̣ lớn nấ t là O(log N) Ta có thể chứng minh điề u này bằng cách tính số node mỗi mức bắt đầ u từ node gố c Ta có: N = + + + … + 2H-1 + 2H = 2H+1- Tương ứng với: H = log2(N + 1) - Duyệt (Tree traversal) Duyệt là một thao tác vô cùng quan trọng đố i với cấ u trức dư ̃ liệu Cách duyệt là tiề n đề quan trọng cho các thuật toán tìm kiế m, tìm đường … về sau này Duyệt là cách qua tấ t cả các node của theo một trình tự nhấ t đinh ̣ Khi duyệt qua một node ta đánh dấ u node đó là đã duyệt và chi ̉ xử lý chúng một lầ n nhấ t Đố i với danh sách liên kế t thì ta phải thự c hiện việc duyệt từ node đầ u tới node cuố i cùng Với thì ta có nhiề u phương pháp để duyệt Có hai cách duyệt phổ biế n đó là: Duyệt theo chiề u rộng (Breadth-first traversal) Duyệt theo mức (level-order) Duyệt theo chiề u sâu (Depth-first traversal) Preorder Inorder Postorder Để tìm hiể u rõ về các cách duyệt bạn có thể click vào các đường dẫn ở Các bài học sẽ bao gồ m tổ ng quát về cách duyệt và cách xây dự ng thuật toán duyệt với ngôn ngư ̃ sử dụng là C/C++ ... hoặc Cây nhị phân hoàn thiện mà node có (trừ node lá), và các node lá có cùng mức, Ta cũng sẽ thấ y này có hệ số E = 0, tức là độ chênh lệch ở mọi node đề u bằng Hình 3: Cây. .. này có hệ số E = 0, tức là độ chênh lệch ở mọi node đề u bằng Hình 3: Cây nhị phân hoàn thiện Cây nhị phân hoàn thiện rấ t đặc biệt Nó cung cấ p ti ̉ lệ tố t nhấ t có thể

Ngày đăng: 04/01/2023, 09:23

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w