1. Trang chủ
  2. » Luận Văn - Báo Cáo

NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG

34 23 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

MỤC LỤC PHẦN MỞ ĐẦU I LÝ DO CHỌN ĐỀ TÀI II MỤC ĐÍCH CỦA ĐỀ TÀI .3 III NHIỆM VỤ NGHIÊN CỨU IV PHƯƠNG PHÁP NGHIÊN CỨU V BỐ CỤC BÀI BÁO CÁO PHẦN NỘI DUNG CHƯƠNG 1: TỔNG QUAN VỀ CẤU TRÚC CÂY 1.1 1.2 ĐỊNH NGHĨA VÀ CÁC KHÁI NIỆM CÂY NHỊ PHÂN CHƯƠNG 2: CÂY NHỊ PHÂN TÌM KIẾM 12 2.1 2.2 2.3 2.4 ĐỊNH NGHĨA CÂY NHỊ PHÂN TÌM KIẾM 12 GIẢI THUẬT TÌM KIẾM 13 PHÂN TÍCH ĐÁNH GIÁ 16 THAO TÁC XOÁ TRÊN CÂY NHỊ PHÂN TÌM KIẾM 17 CHƯƠNG 3: CÂY ĐỎ ĐEN 21 3.1 3.2 3.3 3.4 ĐỊNH NGHĨA 21 CÁC TÍNH CHẤT 22 THUẬN LỢI KHI SỬ DỤNG 23 CÁC PHÉP TOÁN TRÊN CÂY ĐỎ ĐEN 25 3.4.1 PHÉP CHÈN 25 3.4.2 PHÉP XOÁ 28 3.4.3 TÌM KIẾM 32 PHẦN KẾT LUẬN TÀI LIỆU THAM KHẢO LÊ TRỌNG TÚ PHẦN MỞ ĐẦU I LÝ DO CHỌN ĐỀ TÀI Trong khoa học máy tính, cấu trúc liệu cách lưu liệu máy tính cho sử dụng cách hiệu Thông thường, cấu trúc liệu chọn cẩn thận cho phép thực thuật toán hiệu Việc chọn cấu trúc liệu thường việc chọn cấu trúc liệu trừu tượng Một cấu trúc liệu thiết kế tốt cho phép thực hịên nhiều phép tốn, sử dụng tài nguyên, thời gian sử lý không gian nhớ tốt Chúng ta biết tìm kiếm (Searching) đòi hỏi thường xuyên đời sống hàng ngày xử lý Tin học Vấn đề tìm kiếm xét cách tổng qt, hiểu tìm đối tượng thoả mãn số địi hỏi đó, tập rộng lớn đối tượng Khi khơng liên quan đến mục đích xử lý cụ thể khác, tốn tìm kiếm phát biểu độc lập tổng quát sau: “Cho bảng gồm n ghi R1, R2, , Rn Mỗi ghi Ri (1 ≤ i ≤ n) tương ứng với khoá ki Hãy tìm ghi có giá trị khố tương ứng X cho trước” X gọi khố tìm kiếm Cơng việc tìm kiếm hồn thành có hai tình sau sảy 1) Tìm ghi có giá trị khố tương ứng X, lúc ta nói phép tìm kiếm thoả (successfull) 2) Khơng tìm thấy ghi có giá trị khố X Phép tìm kiếm khơng thoả (unsuccessfull) Sau phép tìm kiếm khơng thoả có xuất yêu cầu bổ xung thêm ghi có khố X vào bảng Giải thuật thể yêu cầu gọi giải thuật “tìm kiếm có bổ xung” Có nhiều phương pháp tìm kiếm phổ dụng, liệu nhớ nghĩa tìm kiếm trong, liệu nhớ ngồi tìm kiếm ngồi Đối với tìm kiếm trong, tìm kiếm nhị phân phương pháp thơng dụng, chi phí ít, đạt kết tốt Tuy nhiên sử dụng tìmkiếm nhị phân dãy khoá phải xếp rồi, nghĩa thời gian chi phí cho xếp phải kể đến Nếu dãy khố ln biến động lúc LÊ TRỌNG TÚ chi phí cho xếp lại lên rõ điều lộ nhược điểm phương pháp Để khắc phục nhược điểm vừa nêu tìm kiếm nhị phân đáp ứng yêu cầu tìm kiếm bảng biến động, phương pháp hình thành dựa sở bảng tổ chức dạng nhị phân mà ta gọi nhị phân tìm kiếm Trong đỏ đen cấu trúc liệu hay, với nhị phân tìm kiếm cấu trúc liệu có điểm mạnh việc lưu trữ tìm kiếm liệu Song đỏ đen có đặc tính riêng mà nhờ làm bật điểm mạnh Trên sở với định hướng thầy giáo hướng dẫn Th.S Nguyễn Hữu Dung em chọn đề tài “Cây đỏ đen – lý thuyết mơ ” II MỤC ĐÍCH CỦA ĐỀ TÀI Đề tài nhằm nghiên cứu lý thuyết đỏ đen, dạng tìm kiếm nhị phân tự cân để thấy điểm mạng kiểu cấu trúc liệu Trên sở thực mơ phép tốn chèn, xố, tìm kiếm đỏ đen, đề tài nhằm khẳng định tính chất, việc sử dụng cấu trúc liệu đỏ đen vào việc lưu trữ liệu thực hịên tìm kiếm tốn tìm kiếm việc nên làm III NHIỆM VỤ NGHIÊN CỨU  Nghiên cứu làm rõ khái niệm, tính chất cấu trúc liệu cây, nhị phân, nhị phân tìm kiếm Trên sở xây dựng cấu trúc đỏ đen  Nghiên cứu phép tốn chèn, xố , tìm kiếm cấu trúc liệu đỏ đen; đánh giá chúng so với nhị phân tìm kiếm  Thực mơ phép toán đỏ đen IV PHƯƠNG PHÁP NGHIÊN CỨU Phương pháp nghiên cứu chủ yếu tham khảo tài liệu, viết, sách giáo trình liên quan tới cấu trúc cây, nhị phân tìm kiếm, đỏ đen LÊ TRỌNG TÚ Tìm tài liệu mạng Internet Nghiên cứu lý thuyết lập trình hướng đối tượng ngơn ngữ lập trình Vissual foxpro, để xây dựng bước mơ thuật tốn đỏ đen V BỐ CỤC BÀI BÁO CÁO Báo cáo chia thành chương: Chương 1: Tổng quan cấu trúc Chương giới thiệu tổng quan cấu trúc cây, khái niệm tính chất cây, nhị phân; Chương 2: Cây nhị phân tìm kiếm Chương trình bày nhị phân tìm kiếm bao gồm: định nghĩa, giải thuật tìm kiếm, thao tác chèn xoá nhị phân tìm kiếm, đánh giá thời gian, độ phức tạp thao tác Chương 3: Cây đỏ đen Chương trình bày khái niệm, tính chất đỏ đen, phép tốn chèn, xố, tìm kiếm đỏ đen, đánh giá thời gian , độ phức tạp phép toán này; thuận lợi sử dụng cấu trúc đỏ đen PHẦN NỘI DUNG CHƯƠNG 1: TỔNG QUAN VỀ CẤU TRÚC CÂY 1.1 ĐỊNH NGHĨA VÀ CÁC KHÁI NIỆM Cây cấu trúc phi tuyến tính Một (tree) tập hữu hạn nút có nút đặc biệt gọi nút gốc (root), nút có mối quan hệ phân cấp gọi quan hệ “cha - con” Có thể định nghĩa cách đệ quy sau: Một nút Nút gốc Nếu T1, T2, , Tn cây, với n1, n2, nk gốc, n nút n có quan hệ cha - với n1, n2, nk lúc T tạo lập, với n LÊ TRỌNG TÚ gốc n gọi cha n1, n2, nk ; ngược lại n1, n2, nk gọi n Các T1, T2, , Tn gọi (substrees) n Ta quy ước : Một nút gọi rỗng (null tree) Có nhiều đối tượng có cấu trúc Ví dụ :  Mục lục sách, chương sách, có cấu trúc  Cấu trúc thư mục đĩa có cấu trúc cây, thư mục gốc coi gốc với thư mục tệp nằm thư mục gốc  Gia phả họ tộc có cấu trúc  Một biểu thức số học gồm phép toán cộng, trừ, nhân, chia lưu trữ mà toán hạng lưu trữ nút lá, toán tử lưu trữ nút nhánh, nhánh biểu thức Chẳng hạn chương PHẦN NỘI DUNG báo cáo : CHƯƠNG 1: TỔNG QUAN VỀ CẤU TRÚC CÂY 1.1 ĐỊNH NGHĨA VÀ CÁC KHÁI NIỆM 1.2 CÂY NHỊ PHÂN 1.2.1 ĐỊNH NGHĨA VÀ TÍNH CHẤT 1.2.2 BIỂU DIỄN CÂY NHỊ PHÂN 1.2.3 PHÉP DUYỆT CÂY NHỊ PHÂN 1.3 ÁP DỤNG 1.3.1 CÂY BIỂU DIỄN BIỂU THỨC 1.3.2 CÂY BIỂU DIỄN CÁC TẬP 1.3.3 CÂY QUYẾT ĐỊNH Ta biểu diễn có dạng sau: LÊ TRỌNG TÚ 1.1 1.2 1.2.1 1.3 1.2.2 1.2.3 1.3.1 1.3.2 1.3.3 Hình 1.1  Biểu thức số học x + y * (z – t) + u/v, ta biểu diễn dạng hình 1.2 + + x / * u v - y z t Hình 1.2 Các tập bao hình 1.3 biểu diễn hình 1.4 LÊ TRỌNG TÚ H J A D G K B E F I C Hình 1.3 A B E C F D H G J I K Hình 1.4  Đối với cây, chẳng hạn xét hình 1.4 o Nút A gọi gốc o B, C, D gốc gốc A o A cha B, C, D B, C, D A  Số nút gọi cấp (degree) nút Ví dụ nút A có B, C, D nên cấp A 3, cấp H  Nút có cấp gọi (leaf) hay nút tận (termimal node) Ví dụ nút E, C, K, I , v.v Nút không gọi nút nhánh (branch node)  Cấp cao nút gọi cấp Cây hình 1.4 cấp LÊ TRỌNG TÚ  Gốc có số mức (level) Nếu nút cha có số mức i nút có só mức i + Ví dụ nút A có số mức o Các nút B, C, D có số mức o Các nút E, F, I, H, G có số mức o Các nút K, J có số mức  Chiều cao (heigh) hay chiều xâu (depth) số mức lớn nút có o Cây hình 1.2 có chiều cao o Cây hình 1.4 có chiều cao  Nếu n1, n2 , … , nk dãy nút mà ni cha ni+1 với ≤ i < k, dãy gọi đường (path) từ n1 đến nk Độ dài đường (path length) từ nút nk đến nq số nút phải qua để từ nk đến nq (bằng chiều cao nq - chiều cao nk) Ví dụ hình 1.4 độ dài đường từ A đến G 2, từ A tới K  Nếu thứ tự nút coi trọng xét thứ tự (ordered tree), ngược lại khơng có thứ tự (unordered tree) Thường thứ tự nút đặt từ trái sang phải Hình 1.5 cho ta hai “cây có thứ tự” khác : A B A C C B Hình 1.5 Đối với cây, từ quan hệ cha người ta mở rộng thêm quan hệ khác theo quan hệ gia tộc  Nếu tập hữu hạn phân biệt ta gọi rừng (forest) Khái niệm rừng phải hiểu theo cách riêng vì: có cây, ta bỏ nút gốc ta có rừng! Như hình 1.4 bỏ nút gốc A đi, ta có rừng gồm LÊ TRỌNG TÚ Ví dụ: Cây hình 1.2 : degree = 2; level = 5; root: + 1.2 CÂY NHỊ PHÂN Cây nhị phân dạng quan trọng cấu trúc Cây nhị phân có đặc điểm là: Mọi nút có tối đa Đối với nút người ta phân biệt trái (left subtree) phải (right subtree) Như nhị phân có thứ tự Ví dụ : Cây hình 1.2 nhị phân với toán tử ứng với gốc, toán hạng ứng với trái, toán hạng ứng với phải Các nhị phân sau khác nhau, xong chúng nhị phân khơng có thứ tự (hình 1.6) A A B C A B D C E B D C D E E A A B C D E LÊ TRỌNG TÚ B C D E Hình 1.6  Một số dạng đặc biệt nhị phân (hình 1.7) A A B A B C B D D E B C C C D D E E E a) A d) c) b) A A B D H E I F G D E F G J e) LÊ TRỌNG TÚ C B C f) 10 Q := LPTR(P); call dispose(P); end; {Xử lý trường hợp tổng quát} T := LPTR(P); If RPTR(T) = null then begin RPTR(T) := RPTR(P); call dispose(P); end; S := RPTR(T); {tìm nút thay nút cực phải trái} While RPTR(S) ≠ null begin T := S; S := RPTR(T) end; RPTR(S) := RPTR(P); RPTR(T) := LPTR(S); LPTR(S) := LPTR(P); Q := S; call dispose(P); return Qua giải thuật ta thấy loại bỏ nút khỏi nhị phân tìm kiếm, việc sửa lại địi hỏi tối đa phải sửa bốn mối nối ba nút Như chi phí sửa đổi khơng đáng kể Nếu cho biết giá trị khoá nút cần loại bỏ nhị phân tìm kiếm trước hết phải tìm nút cần loại thực loại bỏ tương tự tìm kiếm bổ xung, phép tìm kiếm loại bỏ chi phí trung bình thời gian cấp O(log2n) LÊ TRỌNG TÚ 20 CHƯƠNG 3: CÂY ĐỎ ĐEN 3.1 ĐỊNH NGHĨA Cây đỏ đen (red – black tree) dạng tìm kiếm nhị phân tự cân bằng, cấu trúc liệu sử dụng khoa học máy tính Cấu trúc ban đầu đưa vào năm 1972 Rudolf Bayer “Symmetric Binary B-Trees: Data Structure and maintenance Algorithms”, nhà xuất Acta Informatica, Tập1, trang 290306 Sau Leonidas J.Guibas Robert Sedgewick thêm đặc tính đỏ đen đặt tên cho ( Tham khảo: Guibas, L and Sedgewick R “ A dichromatic Framwork for Balanced Trees”, in Proc 19th IEEE Symp Foundations of Computer Science, trang 8-21, năm 1978) Nó có cấu trúc phức tạp cho kết tốt thời gian trường hợp xấu Các phép toán chúng tìm kiếm (serch), chèn (insert), xố (delete) thời gian O(logn), n số phần tử Cây đỏ đen nhị phân tìm kiếm( BST) tuân thủ quy tắc sau: (hình 3.2) Mọi node phải đỏ đen Node gốc node phải luôn đen Nếu node đỏ, node phải đen Mọi đường dẫn từ gốc đến phải có số lượng node đen Khi chèn (hay xóa) node mới, cần phải tuân thủ quy tắc gọi quy tắc đỏ đen Nếu tuân thủ, cân 11 14 LÊ TRỌNG TÚ 15 21 Hình 3.1 : Ví dụ đỏ đen Số lượng node đen đường dẫn từ gốc đến gọi chiều cao đen (black height) Ta phát biểu quy tắc theo cách khác đường từ gốc đến phải có chiều cao đen Bổ đề: Một đỏ đen n-node Có: height

Ngày đăng: 08/01/2022, 15:53

Xem thêm:

HÌNH ẢNH LIÊN QUAN

 Biểu thức số học y* (z – t) + u/v, ta có thể biểu diễn dưới dạng cây như hình 1.2 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
i ểu thức số học y* (z – t) + u/v, ta có thể biểu diễn dưới dạng cây như hình 1.2 (Trang 6)
Hình 1.1 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 1.1 (Trang 6)
Hình 1.3 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 1.3 (Trang 7)
Ví dụ: Cây ở hình 1. 2: degree = 2; level = 5; root: + - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
d ụ: Cây ở hình 1. 2: degree = 2; level = 5; root: + (Trang 9)
Hình 1.6 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 1.6 (Trang 10)
Hình 1.7 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 1.7 (Trang 11)
Hình 2.1 2.2 GIẢI THUẬT TÌM KIẾM - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 2.1 2.2 GIẢI THUẬT TÌM KIẾM (Trang 13)
Hình 2.3 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 2.3 (Trang 16)
Hình 2.4 Hình 2.5 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 2.4 Hình 2.5 (Trang 17)
Hình 2.6 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 2.6 (Trang 19)
CHƯƠNG 3: CÂY ĐỎ ĐEN 3.1 ĐỊNH NGHĨA - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
3 CÂY ĐỎ ĐEN 3.1 ĐỊNH NGHĨA (Trang 21)
Hình 3.2. Các node được chèn theo thứ tự tăng dần - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 3.2. Các node được chèn theo thứ tự tăng dần (Trang 24)
Hình 3.3 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 3.3 (Trang 26)
Hình 3.6 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 3.6 (Trang 27)
Hình 3.5 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 3.5 (Trang 27)
Hình 3.7 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 3.7 (Trang 28)
Hình 3.8 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 3.8 (Trang 30)
Hình 3.9 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 3.9 (Trang 30)
Hình 3.11 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 3.11 (Trang 31)
Hình 3.12 - NCKH cây đỏ ĐEN – lý THUYẾT và mô PHỎNG
Hình 3.12 (Trang 32)

TỪ KHÓA LIÊN QUAN

w