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

Xây dựng cấu trúc cây đỏ đen

39 417 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

Nội dung

Mục lụC Trang Lời nói đầu Chơng I : Giới thiệu ngôn ngữ Visual C++ th viện lập trình MFC .5 I Các công cụ hỗ trợ lập trình Visual Assist MSDN (Microsoft Developer Network) .5 II MÔI TRƯờNG LậP TRìNH Tạo project sử dụng th viện MFC 1.1 Vùng Workspace .6 1.2 Vùng .6 1.3 Vùng - Output .6 Các control chuẩn 2.1 Hộp Control 2.2 Các control chuẩn 2.3 Thiết lập thuộc tính cho control .7 2.4 Control Thuộc tính mặc định 2.5 Sự kiện xử lý kiện a Sự kiện .8 b Tạo hàm xử lý kiện .8 2.6 Debug chơng trình Chơng II: Khái quát đỏ đen, thuật toán nhận xét cấu trúc đỏ đen 10 I Khái quát đỏ đen 10 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen Giới thiệu nhị phân tìm kiếm (binary search tree) 10 Giải thuật tìm kiếm .10 Loại bỏ tìm kiếm nhị phân .12 Cây đỏ đen 14 4.1 Quy tắc đỏ đen 16 II Các thuật toán đỏ đen 17 Thêm nút 17 1.1 Các phép lật màu đờng xuống 17 1.2 Các phép quay chèn nút .18 Xóa nút 25 III Các giao diện chơng trình 26 Giao diện chơng trình 26 Giao diện chèn nút vào 27 a Giao diện nhập giá trị cần chèn 27 b Giao diện chèn nút thành công 28 c Giao diện chèn trùng nút có câ.y 39 d Giao diện chèn nút không thành công .30 Giao diện xoá nút khỏi 31 a Giao diện nhập giá trị nút cần xoá 31 b Giao diện xoá nút không thành công 32 c Giao diện xoá nút không thành công 33 Giao diện tìm kiếm nút 34 a Giao diện nhập giá trị cần tìm kiếm 34 b Giao diện tìm kiếm thành công 35 c Giao diện không tìm thấy nút .36 Kết luận .37 Tài liệu tham khảo .38 Hoàng Đức Hiển GVHD: TS Phan Lê Na Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen lời nói đầu Ngày công nghệ thông tin đóng vai trò quan trọng nhiều lĩnh vực đời sống kinh tế, xã hội nhiều quốc gia giới, phần thiếu xã hội ngày đại hóa Sự phát triển nhảy vọt công nghệ thông tin làm ảnh hởng đến hoạt động đời sống xã hội, làm thay đổi phong cách làm việc xã hội Công nghệ thông tin trở thành trụ cột tri thức nhân loại, phạm vi ứng dụng công nghệ thông tin ngày mở rộng nhiều lĩnh vực: lu trữ xử lý số liệu, truyền thông, giải trí Nói đến công nghệ thông tin không nhắc đến ngôn ngữ lập trình, ngôn ngữ lập trình đóng vai trò quan trọng lĩnh vực công nghệ thông tin Công nghệ thông tin phát triển dẫn đến đời nhiều ngôn ngữ lập trình thân thiện với ngời sử dụng nh: Visual C++, Visual Basic, Java, C# Cây đỏ đ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 lu 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 Chính vậy, nghiên cứu ngôn ngữ lập trình ngôn ngữ Visual C++ chọn đề tài Xây dựng cấu trúc đỏ đen làm đồ án tốt nghiệp đại học Đề tài Xây dựng cấu trúc đỏ đen phần mở đầu kết luận gồm chơng: Chơng I: Giới thiệu ngôn ngữ Visual C++ th viện lập trình MFC Chơng II: Cấu trúc đỏ đen Hoàng Đức Hiển GVHD: TS Phan Lê Na Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen Mặc dù cố gắng để hoàn thành đồ án, xong thời gian có hạn kinh nghiệm kiến thức cha nhiều nên có nhiều thiếu sót cần đợc bổ sung mong nhận đợc góp ý giúp đỡ thầy cô bạn để chơng trình ngày hoàn thiện Tôi xin chân thành cảm ơn cô giáo, tiến sỹ Phan Lê Na tận tình hớng dẫn giúp đỡ hoàn thành đồ án Tôi xin cảm ơn thầy cô giáo khoa CNTT nh bạn lớp 45K đóng góp nhiều ý kiến bổ ích cho đồ án Vinh , ngày 15 tháng năm 2009 Sinh viên thực hiện: Hoàng Đức Hiển Hoàng Đức Hiển GVHD: TS Phan Lê Na Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen Chơng I Giới thiệu ngôn ngữ Visual C++ th viện lập trình MFC Visual C++ nằm Microsoft Visual Studio Đây môi trờng lập trình đa dành cho ngôn ngữ C/C++ môi trờng lập trình hệ điều hành Windows nên Visual C++ cho phép lập trình viên thực nhiều công việc, hỗ trợ lập trình viên việc coding, thiết kế giao diện Trong Visual C++ tạo đợc: ứng dụng Windows, ActiveX, hay th viện liên kết động DLLVisual C++ có nhiều công cụ giúp việc thiết kế giao diện cho chơng trình, kiểm lỗi sửa lỗi Th viện MFC (Microsoft Foundation Class) th viện tập hợp lớp hớng đối tợng đóng gói hàm API Windows kiểu liệu đặc biệt Bên cạnh sử dụng th viện MFC Visual C++, sử dụng hàm C chuẩn I Các công cụ hỗ trợ lập trình Visual Assist Đây công cụ Add-in vào môi trờng lập trình Nó giúp cho việc hiển thị hàm, biến, đoạn chơng trình cách rõ ràng (thông qua màu sắc biến, kiểu liệu, hàm, từ khoá ) Một đoạn code Visual C++ có sử dụng Visual Assist cung cấp phận hoạt động hiệu Các chức phận bao gồm : tự động điền tên biến, tên hàm sau gõ vài ký tự, hiển thị prototype hàm (có sẵn th viện hay đợc tạo lớp đó) Hoàng Đức Hiển GVHD: TS Phan Lê Na Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen MSDN (Microsoft Developer Network) MSDN Có thể xem nh tập cho lập trình ngôn ngữ từ C/C++, Visual Basic C#, VB.Net Trong MSDN, tài liệu giới thiệu chi tiết việc sử dụng hàm, lớp, có sách, báo kỹ thuật, hay mẫu code đợc tận dụng việc lập trình II MÔI TRƯờNG LậP TRìNH Tạo project sử dụng th viện MFC Có thể chia hình làm việc thành ba vùng khác : 1.1 Vùng Workspace Đây không gian tơng tác giúp lập trình viên nhanh chóng chuyển qua lại lớp: ClassView cho thấy hình ảnh tổng thể project dới dạng lớp Trong classview, lập trình viên biết đợc cấu tạo lớp (có hàm, biến nào; tầm vực hoạt động hàm, biến public, protected, private) ResourceView cho thấy đợc tài nguyên có project (dialog, menu, toolbar, bitmap, icon, ) Thực chất phần thực hoá thể tập tin resource.h rc FileView cho thấy tập tin có project : source file, header file, resoure file tập tin đợc thêm vào sau 1.2 Vùng Đó vùng dùng để thiết kế giao diện (các dialog, menu, toolbar) hay viết code cho project 1.3 Vùng - Output Vùng thể thông báo lỗi (nếu có), kết thực thi (khi có sử dụng Macro), nội dung biến (ở chế độ Debug) Các control chuẩn Hoàng Đức Hiển GVHD: TS Phan Lê Na Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen 2.1 Hộp Control Trong môi trờng lập trình Visual C++ thực việc kéo thả control chuẩn thiết kế giao diện Bật/tắt hộp control thiết kế thực nh sau: nhấn phím chuột phải toolbar, menu nh bên tay phải xuất hiện, chọn (không chọn) chức Controls Có thể vào Tools\ Customize, check vào toolbars vị trí Controls 2.2 Các control chuẩn Visual C++ cho phép chèn control chuẩn sau vào ứng dụng : PictureBox, Static Text (Label), Edit box (Textbox), GroupBox, Button, Checkbox, RadioButton, ComboBox, ListBox, Scrollbar, Spin, Progressbar, Slider, TreeControl, Tab Control, Animate, RichEdit, DateTime, Month Calendar, IP Address 2.3 Thiết lập thuộc tính cho control Các thuộc tính control Visual C++ không nhiều Tuy nhiên, có thuộc tính đặc biệt (mặc định) control bắt buộc lập trình viên phải nhớ để thao tác nhanh chóng Mỗi control có định danh (ID) riêng ID số nguyên nhất, vài thuộc tính đáng quan tâm control 2.4 Control Thuộc tính mặc định Static Text Align : canh chỉnh (trái, phải, giữa) dòng chữ static text Center vertically : canh chỉnh theo chiều dọc No wrap : không nhảy dòng chiều dài dòng chữ vợt khỏi chiều rộng static text Sunken, Border : đờng viền cho static text Edit box Align text : canh chỉnh (trái, phải, giữa) dòng chữ static text Multiline : cho phép hiển thị nhiều dòng Hoàng Đức Hiển GVHD: TS Phan Lê Na Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen Number : cho phép nhập vào số HScroll, VScroll : cuộn theo chiều ngang (H), chiều dọc (V) AutoHScroll : tự động cuộn theo chiều ngang (nếu có) AutoVScroll : tự động cuộn theo chiều dọc (nếu có) Password : không hiển thị ký tự nhập vào (chỉ thấy ký tự *) Uppercase, Lowercase : chữ hoa, chữ thờng Read-only : không cho phép gõ vào control Check box Push-like : dạng nút nhấn (chìm/nổi) Horizontal Alignment : canh chỉnh theo chiều ngang Vertical Alignment : canh chỉnh theo chiều dọc Đối với ComboBox, thiết kế : kéo chiều cao ComboBox đến vị trí tối đa mong muốn ComboBox xổ xuống Data : Vùng liệu thêm vào Listbox, ComboBox thiết kế Nhấn Ctrl-Enter để kết thúc mục Sort : Dữ liệu đợc xếp theo thứ tự tăng giần xuất Listbox, ComboBox Multicolumn : xuất thành nhiều cột (phụ thuộc vào chiều rộng) 2.5 Sự kiện xử lý kiện a Sự kiện Trên Windows, kiện xảy liên tục (khi có tác động ngời dùng, hay chơng trình lên hệ thống) Windows tiếp nhận kiện gửi đến cho ứng dụng chạy b Tạo hàm xử lý kiện Sử dụng ClassWizard để tạo hàm xử lý cho kiện (lên chơng trình hay lên control cụ thể) Trên hộp thoại MFC ClassWizard, chọn lựa lớp (trong Class name), ID đối tợng (Object IDs) cần thêm kiện vào (Messages) Sau Hoàng Đức Hiển GVHD: TS Phan Lê Na Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen chọn Add Functions, môi trờng lập trình tự động thêm khai báo hàm, cấu trúc hàm vào vị trí thích hợp tập tin CPP H lớp 2.6 Debug chơng trình Vùng hình Context cho biết giá trị biến có đoạn chơng trình chạy (kiểm lỗi) Các biến đợc đa vào cách tự động Vùng hình Watch cho biết giá trị biến lập trình viên mong muốn Vùng hình Call Stack cho biết thứ tự gọi hàm chơng trình Vùng hình Registers cho biết giá trị ghi Hoàng Đức Hiển GVHD: TS Phan Lê Na Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen Chơng II cấu trúc đỏ đen I Khái quát đỏ đen Giới thiệu nhị phân tìm kiếm (binary search tree) Cây nhị phân tìm kiếm (BST) ứng với n khoá k1, k2, kn nhị phân mà mà nút đợc định danh mọt khoá khoá cho nút tính chất sau luôn đợc thoả mãn - Mọi khoá thuộc trái nút nhỏ khoá ứng với nút - Mọi khoá thuộc phải nút lớn khoá ứng với nút thứ tự chọn ta quy ớc thứ tự tăng dần số thứ tự từ điển chữ Sau ví dụ nhị phân khoá số chữ if 6 fo r Whil e repea t loo p Hình 1: Minh hoạ số chữ Hoàng Đức Hiển GVHD: TS Phan Lê Na 10 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen - Quay với nút P - nút cha X - đỉnh (không phải với nút ông bà; nút cha 12) - Quay lần với node ông bà X (25) đỉnh, hớng nâng X lên (quay phải) Xóa nút Chúng ta biết cậy nhị phân tìm kiếm việc xóa phần tử khỏi khó khăn phức tạp việc insert phần tử vào cây, đỏ đen vậy, chí phức tạp trình thêm vào phải đảm bảo qui tắc đỏ đen Nhận xét: Giống nh tìm kiếm nhị phân thông thờng, đỏ đen cho phép việc tìm kiếm, chèn xóa thời gian O(log2n) Thời gian tìm kiếm gần nh hai loại cây, đặc điểm đỏ đen không sử dụng trình tìm kiếm Điều bất lợi việc lu trữ cần cho nút tăng chút để điều tiết màu đỏ - đen Trong thực tế tìm kiếm đỏ đen khoảng log2n phép so sánh, chứng minh không cần 2*log2n phép so sánh Thời gian chèn xóa tăng dần số việc phải thực thi phép lật màu quay đờng xuống điểm chèn Trung bình phép chèn cần khoảng chừng phép quay Do đó, chèn chiếm O(log2n) thời gian, nhng lại chậm phép chèn nhị phân thờng Bởi hầu hết ứng dụng, có nhiều thao tác tìm kiếm chèn xóa, có lẽ nhiều bất lợi thời gian dùng đỏ đen thay nhị phân thuờng Dĩ nhiên, điều thuận lợi đỏ đen, liệu xếp không làm giảm hiệu suất O(n) Hoàng Đức Hiển GVHD: TS Phan Lê Na 25 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen III Các giao diện chơng trình Giao diện chơng trình - Click vào biểu tợng để chèn giá trị vào - Click vao biểu tợng X để xoá giá trị khỏi - Click vào biểu tợng Hoàng Đức Hiển để tìm giá trị GVHD: TS Phan Lê Na 26 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen Giao diện chèn nút vào a Giao diện nhập giá trị cần chèn -Nhập vào giá trị cần chèn vào Hoàng Đức Hiển GVHD: TS Phan Lê Na 27 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen b Giao diện chèn nút thành công - Nhập giá trị cần chèn vào không trùng với giá trị có Hoàng Đức Hiển GVHD: TS Phan Lê Na 28 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen c Giao diện chèn trùng nút có -Nhập giá trị chèn vào có Hoàng Đức Hiển GVHD: TS Phan Lê Na 29 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen d Giao diện chèn nút không thành công - Nhập giá trị cần chèn vào trùng với giá trị có Hoàng Đức Hiển GVHD: TS Phan Lê Na 30 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen Giao diện xoá nút khỏi a Giao diện nhập giá trị nút cần xoá - Nhập vào giá trị cần xoá Hoàng Đức Hiển GVHD: TS Phan Lê Na 31 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen b Giao diện xoá nút không thành công - Nhập vào giá trị nút cần xoá có Hoàng Đức Hiển GVHD: TS Phan Lê Na 32 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen c Giao diện xoá nút không thành công - Nhập vào giá trị nút cần xoá Hoàng Đức Hiển GVHD: TS Phan Lê Na 33 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen Giao diện tìm kiếm nút a Giao diện nhập giá trị cần tìm kiếm - Nhập vào giá trị cần tìm kiếm Hoàng Đức Hiển GVHD: TS Phan Lê Na 34 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen b Giao diện tìm kiếm thành công - Nhập vào giá trị cần tìm kiếm có Hoàng Đức Hiển GVHD: TS Phan Lê Na 35 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen c Giao diện không tìm thấy nút - Nhập vào giá trị cần tìm Hoàng Đức Hiển GVHD: TS Phan Lê Na 36 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen Kết luận Đề tài Xây dựng cấu trúc đỏ đen đợc hoàn thành đạt kết sau: - Tìm hiểu sâu ngôn ngữ Visual C++ - Phân tích đợc cách duyệt cây, chèn nút, xoá nút, xoay nút đỏ đen chèn hình minh hoạ - Cài đặt đợc thuật toán đỏ đen - Tối u đợc cách lu trữ liệu - Tiết kiệm đợc thời gian dung lợng nhớ - Xử lý đợc thao tác duyệt sau hớng phát triển đề tài: - Cài đặt tất loại cây: Cây tổng quát, nhị phân cân đối - Cài đặt tất thuật toán xếp: lựa chọn, thêm dần, vun đống - Cài đặt thuật toán tối u phép duyệt Mặc dù cố gắng song thời gian khả có hạn nên việc phân tích cài đặt chơng trình hạn chế, qua mong nhận đợc đóng góp quý báu từ thầy cô giáo bạn để xây dựng đợc chơng trình hoàn thiện Cuối xin chân thành cảm ơn cô giáo, TS Phan Lê Na tận tình giúp đỡ hoàn thành đồ án xin chân thành cảm ơn thầy cô giáo khoa CNTT bạn lớp đóng góp nhiều ý kiến để hoàn thành đồ án đợc tốt Sinh viên thực hiện: Hoàng Đức Hiển Hoàng Đức Hiển GVHD: TS Phan Lê Na 37 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen Tài liệu tham khảo [1] Rudolf Bayer, Symmetric Binary B-Trees: Data Structure and maintenance Algorithms, tập 1, Nhà xuất Acta Informatica, năm 1999 [2] Guibas, L and Sedgewick R, A dichromatic Framwork for Balanced Trees, in Proc 19th IEEE Symp Foundations of Computer Science, năm 1978 [3].Trần Xuân Hào, Giáo trình cấu trúc liệu giải thuật, Khoa Công nghệ Thông tin - Đại học Vinh, năm 2001 [4] Lơng Xuân Phú, Giáo trình Xử Lý ảnh, Khoa Công nghệ Thông tin - Trờng Đại học Vinh, năm 2004 [5] Đỗ Xuân Lôi, Cấu trúc liệu giải thuật Nhà xuất Thống kê, năm 1999 Hoàng Đức Hiển GVHD: TS Phan Lê Na 38 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen Hoàng Đức Hiển GVHD: TS Phan Lê Na 39 [...]... án tốt nghiệp Xây dựng cấu trúc cây đỏ đen 3 Giao diện xoá nút ra khỏi cây a Giao diện nhập giá trị nút cần xoá - Nhập vào giá trị cần xoá Hoàng Đức Hiển GVHD: TS Phan Lê Na 31 Đồ án tốt nghiệp Xây dựng cấu trúc cây đỏ đen b Giao diện xoá nút không thành công - Nhập vào giá trị các nút cần xoá đã có trên cây Hoàng Đức Hiển GVHD: TS Phan Lê Na 32 Đồ án tốt nghiệp Xây dựng cấu trúc cây đỏ đen c Giao diện... chèn vào cây không trùng với giá trị đã có trên cây Hoàng Đức Hiển GVHD: TS Phan Lê Na 28 Đồ án tốt nghiệp Xây dựng cấu trúc cây đỏ đen c Giao diện chèn trùng nút đã có trên cây -Nhập giá trị chèn vào đã có trên cây Hoàng Đức Hiển GVHD: TS Phan Lê Na 29 Đồ án tốt nghiệp Xây dựng cấu trúc cây đỏ đen d Giao diện chèn nút không thành công - Nhập giá trị cần chèn vào cây trùng với giá trị đã có trên cây Hoàng... Hoàng Đức Hiển GVHD: TS Phan Lê Na 21 Đồ án tốt nghiệp Xây dựng cấu trúc cây đỏ đen Hình 8 Nút P đỏ và X là nút cháu ngoại iii) Khả năng 3: P đỏ và X là cháu nội của G Hoàng Đức Hiển GVHD: TS Phan Lê Na 22 Đồ án tốt nghiệp Xây dựng cấu trúc cây đỏ đen Nếu nút P đỏ và X là nút cháu nội, chúng ta cần thực hiện hai phép quay và một vài phép đổi màu Cây đỏ đen đợc tạo thành từ các nút 50, 25, 75, 12 và 18 (cần... nhỏ hơn nút con phải, bên cạnh đó cây đỏ đen còn đợc bổ sung một số đắc điểm Trong cây đỏ đen, việc cân bằng đợc thực thi trong khi chèn, xóa Khi thêm một phần tử thì thủ tục chèn sẽ kiểm tra xem tính chất cân bằng của cây có bị vi phạm hay không Nếu có, sẽ xây dựng lại cấu trúc cây Bằng cách này, cây luôn luôn đợc giữ cân bằng 4.1 Quy tắc đỏ đen Cây đỏ đen là một cây nhị phân tìm kiếm (BST) tuân thủ... chèn giá trị vào cây - Click vao biểu tợng X để xoá giá trị ra khỏi cây - Click vào biểu tợng Hoàng Đức Hiển để tìm giá trị trên cây GVHD: TS Phan Lê Na 26 Đồ án tốt nghiệp Xây dựng cấu trúc cây đỏ đen 2 Giao diện chèn nút vào cây a Giao diện nhập giá trị cần chèn -Nhập vào giá trị cần chèn vào cây Hoàng Đức Hiển GVHD: TS Phan Lê Na 27 Đồ án tốt nghiệp Xây dựng cấu trúc cây đỏ đen b Giao diện chèn... cần xoá không có trên cây Hoàng Đức Hiển GVHD: TS Phan Lê Na 33 Đồ án tốt nghiệp Xây dựng cấu trúc cây đỏ đen 4 Giao diện tìm kiếm nút trên cây a Giao diện nhập giá trị cần tìm kiếm - Nhập vào các giá trị cần tìm kiếm Hoàng Đức Hiển GVHD: TS Phan Lê Na 34 Đồ án tốt nghiệp Xây dựng cấu trúc cây đỏ đen b Giao diện tìm kiếm thành công - Nhập vào các giá trị cần tìm kiếm đã có trên cây Hoàng Đức Hiển GVHD:... sau: - Mọi nút phải là đỏ hoặc đen - Nút gốc và các nút lá phải luôn luôn đen - Nếu một nút là đỏ, những nút con của nó phải đen - Mọi đờng dẫn từ gốc đến một lá phải có cùng số lợng nút đen Hoàng Đức Hiển GVHD: TS Phan Lê Na 15 Đồ án tốt nghiệp Xây dựng cấu trúc cây đỏ đen Khi chèn (hay xóa) một node mới, cần phải tuân thủ các quy tắc trên -gọi là quy tắc đỏ đen Nếu đợc tuân thủ, cây sẽ đợc cân bằng... của cây đỏ đen Nhận xét: Giống nh cây tìm kiếm nhị phân thông thờng, cây đỏ đen có thể cho phép việc tìm kiếm, chèn và xóa trong thời gian O(log2n) Thời gian tìm kiếm là gần nh bằng nhau đối với hai loại cây, vì những đặc điểm của cây đỏ đen không sử dụng trong quá trình tìm kiếm Điều bất lợi là việc lu trữ cần cho mỗi nút tăng chút ít để điều tiết màu đỏ - đen Trong thực tế tìm kiếm trên cây đỏ đen. .. giải quyết vấn đề của cây không cân bằng: đó là cây đỏ đen, là cây tìm kiếm nhị phân có thêm một vài đặc điểm Có nhiều cách tiếp cận khác để bảo đảm cho cây cân bằng: chẳng hạn cây 2-3-4 Tuy vậy, trong phần lớn trờng hợp, cây đỏ đen là cây cân bằng hiệu quả nhất, ít ra thì khi dữ liệu đợc lu trữ trong bộ nhớ chứ không phải trong những tập tin Trớc khi khảo sát cây đỏ đen, hãy xem lại cây không cân bằng... hơn phép chèn trong cây nhị phân thờng Bởi vì trong hầu hết các ứng dụng, có nhiều thao tác tìm kiếm hơn là chèn và xóa, có lẽ không có nhiều bất lợi về thời gian khi dùng cây đỏ đen thay vì cây nhị phân thuờng Dĩ nhiên, điều thuận lợi là trong cây đỏ đen, dữ liệu đã sắp xếp không làm giảm hiệu suất O(n) Hoàng Đức Hiển GVHD: TS Phan Lê Na 25 Đồ án tốt nghiệp Xây dựng cấu trúc cây đỏ đen III Các giao diện ... nghiệp Xây dựng cấu trúc đỏ đen Hình Nút P đỏ X nút cháu ngoại iii) Khả 3: P đỏ X cháu nội G Hoàng Đức Hiển GVHD: TS Phan Lê Na 22 Đồ án tốt nghiệp Xây dựng cấu trúc đỏ đen Nếu nút P đỏ X nút... nghiệp Xây dựng cấu trúc đỏ đen Kết luận Đề tài Xây dựng cấu trúc đỏ đen đợc hoàn thành đạt kết sau: - Tìm hiểu sâu ngôn ngữ Visual C++ - Phân tích đợc cách duyệt cây, chèn nút, xoá nút, xoay nút đỏ. .. nghiệp Xây dựng cấu trúc đỏ đen iii) Khả 3: P đỏ X cháu nội G Chúng ta lần lợt xét khả cụ thể nh sau: i) Khả 1: P đen P đen trờng hợp đơn giản Nút thêm vào đỏ Nếu nút cha đen, xung khắc đỏ - đỏ (quy

Ngày đăng: 15/12/2015, 07:14

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w