Đề tài Lý thuyết và mô phỏng cây AVL có kết cấu nội dung gồm 2 phần: Lý thuyết (trình bày nội dung lý thuyết về cây nhị phân tìm kiếm và cây nhị phân cân bằng), mô phỏng (trình bày nội dung lý thuyết mô phỏng và phân tích thiết kế dữ liệu). Để tìm hiểu nội dung chi tiết hơn, mời các bạn cùng tham khảo.
Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT MỤC LỤC PHẦN MỞ ĐẦU Lý chọn đề tài PHẦN 1: LÝ THUYẾT I CÂY NHỊ PHÂN TÌM KIẾM 1.1 Định nghĩa khái niệm nhị phân 1.2 Cây nhị phân tìm kiếm a Định nghĩa tính chất b.Giải thuật tìm kiếm c Giải thuật bổ sung d Giải thuật loại bỏ f Phân tích đánh giá II CÂY NHỊ PHÂN CÂN BẰNG 2.1 Cây nhị phân cân hoàn toàn (CCBHT) a Định nghĩa: b Đánh giá: 2.2 Cây nhị phân tự cân (AVL) a Định nghĩa b Các trường hợp gây cân AVL b Giải thuật bổ sung AVL c Giải thuật loại bỏ AVL 11 d Đánh giá 11 PHẦN 2: MÔ PHỎNG 11 I LÝ THUYẾT MÔ PHỎNG 11 1.1 Định nghĩa mơ thuật tốn 11 1.2 Mục đích mơ thuật toán 12 1.3 u cầu mơ thuật tốn 12 -1- Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT a Phản ánh nội dung thuật toán 12 b Có thể thực giải thuật theo bước để theo dõi giá trị biến đối tương toán 12 c Có hình ảnh động (có thể có âm cần) để mơ tả trực tiếp q trình thi hành thuật toán 12 d Có thể kiểm định thuật tốn trường hợp ngẫu nhiên, trường hợp xấu nhất, trường hợp tốt 13 e Tạo mức độ sử dụng khác cho người học 13 II PHÂN TÍCH THIẾT KẾ 13 2.1 Cấu trúc liệu lưu trữ 13 a Ngơn ngữ lập trình sử dụng 13 b.Phân tích giải thuật đưa cấu trúc liệu 13 2.2 Xây dựng mơ hình mơ liệu vào liệu 17 a.Vậy phải xây dựng mẫu liệu vào: 17 b.Xây dựng mẫu liệu ra: 18 2.3 Sản phẩm mẫu 19 2.4 Đánh gía ý tưởng phát triển 20 TÀI LIỆU THAM KHẢO 21 -2- Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT LÝ THUYẾT VÀ MÔ PHỎNG CÂY AVL PHẦN MỞ ĐẦU Lý chọn đề tài Hiện nay, công nghệ thông tin với tốc độ phát triển nhanh Các nhà khoa học khẳng định chưa có ngành khoa học - cơng nghệ lại có nhiều ứng dụng công nghệ thông tin Việc ứng dụng công nghệ thông tin vào giáo dục trở thành mối ưu tiên hàng đầu nhiều quốc gia có Việt Nam Trong q trình học giải thuật nói chung mơn cấu trúc liệu nói riêng, rút nhận định chung là: nhiều giải thuật phức tạp trừu tượng, khó hiểu, khó hình dung vấn đề Do ln mong muốn q trình học giải thuật nên có mơ trực quan để tiếp thu giải thuật cách dễ dàng Tuy nhiên, việc học tốt giải thuật có nhiều thận lợi dó giúp cho q trình tư giải thật tốt hơn, phát vấn đề nhanh hơn, đặc biệt giúp cho việc học mơn học khác có tính logic cao thuận lợi Nhưng để học tốt giải thuật khơng dễ dàng với nhiều người Vậy để giúp người học tiếp thu cách dễ dàng giải thuật phải xây dựng phần mền mơ thuật tốn Cây AVL loại nhị phân tự cân bằng, loại cấu trúc liệu ứng dụng nhiều cơng việc tìm kiếm Cây nhị phân tìm kiếm với ưu điểm thực dễ dàng phép bổ sung loại bỏ tỏ thuận tiện việc xử lý bảng biến động Tuy nhiên phát triển tự nhiên khuynh hướng suy biến xuất điều làm cho người dùng lo ngại Còn muốn ln đạt chi phí tối thiểu đòi hỏi phải ln “cân đối” (Như nhị phân hoàn chỉnh nhị phân gần đầy) Nhưng ta biết, việc sửa lại cho cân đối tiến hành thường xuyên gây tổn phí nhiều thời gian cơng sức Vì cần phải tới giải pháp dung hoà: Giảm bớit chặt chẽ tính “cân đối” để tránh khả suy biến Năm 1962 P.M Adelson – Velski – EM Landis mở đầu phương hướng giải cách đưa dạng cân đối mà sau mang tên họ, nhị phân tìm kiếm cân đối AVL Tính ứng dụng AVL lớn, chương trình chưa học, nên em mong muốn làm mô giải thuật AVL để người học có -3- Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT thể nắm loại cấu trúc liệu áp dụng việc giải tốn PHẦN 1: LÝ THUYẾT I CÂY NHỊ PHÂN TÌM KIẾM 1.1 Định nghĩa khái niệm nhị phân Cây nhị phân mà nút có tối đa Đối với có nút người ta phân biệt trái phải Vì vây nhị phân có thứ tự Số nút mức i N ta theo nhánh phải tiếp tục trình so sánh Nếu V < N ta theo nhánh trái tiếp tục trình so sánh Quá trình dừng lại xảy hai trường hợp sau: V = N Trong trường hợp này, liệu cần chèn có Vì vậy, ta khơng cần chèn thêm nút Con trỏ trỏ đến Null Tức ta tìm đến vị trí xác cho nút d Giải thuật loại bỏ Giả sử ta muốn xóa nút có nhãn x, ta tiến hành tìm kiếm nút gốc: nhãn x lớn nhãn nút gốc ta tìm sang bên phải, ngược lại ta tìm sang bên trái Nếu khơng tìm thấy giải thuật kết thúc Nếu tìm gặp có trường hợp sau : Nếu x ta thay x Nil Nếu x có nút ta thay x nút Nếu x có ta thay x nút lớn bên trái (nút cực phải trái) nút bé bên phải x (nút cực trái phải) f Phân tích đánh giá Tất thao tác tìm kiếm, bổ sung, loại bỏ CNPTK có độ phức tạp trung bình O(h), với h chiều cao Trong trường hợp tốt nhất, CNPTK có n nút có độ cao h = log2(n) Chi phí tìm kiếm tương đương tìm kiếm nhị phân mảng có thứ tự Tuy nhiên, trường hợp xấu nhất, bị suy biến thành DSLK (khi mà nút có trừ nút lá) Lúc thao tác có độ phức tạp O(n) Vì cần có cải tiến cấu trúc CNPTK để đạt chi phí cho thao tác log2(n) -6- Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT II CÂY NHỊ PHÂN CÂN BẰNG 2.1 Cây nhị phân cân hoàn toàn (CCBHT) a Định nghĩa: Cây cân hồn tồn nhị phân tìm kiếm mà nút nó, số nút trái chênh lệch không so với số nút phải b Đánh giá: Một khó đạt trạng thái cân hồn tồn dễ cân thêm hay hủy nút làm cân (xác suất lớn), chi phí cân lại lớn phải thao tác tồn Tuy nhiên cân đối việc tìm kiếm nhanh Đối với cân hoàn toàn, trường hợp xấu ta phải tìm qua log2n phần tử (n số nút cây) Do CCBHT cấu trúc ổn định nên thực tế sử dụng Nhưng ưu điểm lại quan trọng Vì vậy, cần đưa CTDL khác có đặc tính giống CCBHT ổn định Như vậy, cần tìm cách tổ chức đạt trạng thái cân yếu việc cân lại xảy phạm vi cục phải bảo đảm chi phí cho thao tác tìm kiếm đạt mức O(log2 n) 2.2 Cây nhị phân tự cân (AVL) a Định nghĩa Cây nhị phân tìm kiếm cân mà nút độ cao trái phải chênh lệch không Cây cân bẳng hoàn toàn AVL, AVL chưa cân hoàn toàn Tính cân đối AVL nhẹ so với tính cân đối nhị phân cân hồn tồn Cây nhị phân tìm kiếm mà ln có dạng cân đối AVL, chi phí tìm kiếm trường hợp xấu O(log2n) -7- Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT Từ giới thiệu, AVL nhanh chóng tìm thấy ứng dụng nhiều tốn khác Vì vậy, mau chóng trở nên thịnh hành thu hút nhiều nghiên cứu Từ AVL, người ta phát triển thêm nhiều loại CTDL hữu dụng khác đỏ-đen (Red-Black Tree), B-Tree, … b Các trường hợp gây cân AVL Trường hợp 1: Cây lệch trái: Trường hợp 2: Cây lệch phải: Ta thấy trường hợp lệch bên phải hoàn toàn đối xứng với trường hợp lệch bên trái Vì ta cần khảo sát trường hợp lệch bên trái -8- Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT TH1 TH2 TH3 b Giải thuật bổ sung AVL Việc theo đường tìm kiếm để thấy khố chưa có sẵn biết “chỗ” để bổ sung vào, tất nhiên thực tương tự việc bổ sung -9- Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT node vào nhị phân Sau node bổ sung, có ba tình xảy với node tiền bối Để tiện trình bày, ta giả sử phép bổ sung thực vào phía trái Như ba tình nêu cụ thể sau: Tình 1: Cây phải cao (lệch phải) sau phép bổ sung chiều cao hai Trường hợp ta cần chỉnh lại hệ số cân nút xét Tình 2: Chiều cao hai vốn nhau, sau phép bổ sung trái cao (lệch trái) Trường hợp chiều cao gốc node xét bị thay đổi, nên chỉnh lý hệ số cân đối nút xét mà phải chỉnh lý hệ số cân đối node tiền bối Tình 3: Cây trái cao (lệch trái), sau phép bổ sung cao 2: tính “cân AVL” bị phá vỡ ta phải cân lại phép xoay.Có hai trường hợp phải xử lý khác nhau: TH1: Node bổ sung làm tăng chiều cao trái node trái node bất thường Tái cân giống trương hợp TH2: Node bổ sung làm tăng chiều cao phải node trái node bất thường Tái cân giống tring tường hợp - 10 - Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT c Giải thuật loại bỏ AVL Loại bỏ giống giải thuật loại bỏ nhị phân, khác sau loại bỏ bị cân đối phải tái cân đối phép quay làm bổ sung Việc huỷ nút phải cân dây chuyền nút từ gốc cho đên phần tử bị huỷ thêm vào cần lần cân cục d Đánh giá Cây cân có CTDL ổn định hẳn CCBHT thêm hủy làm thay đổi chiều cao trường hợp cân có khả xảy Cây AVL với chiều cao khống chế cho phép thực thi thao tác tìm thêm hủy với chi phí O (log2(n)) bảo đảm khơng suy biến thành O(n) PHẦN 2: MƠ PHỎNG I LÝ THUYẾT MƠ PHỎNG 1.1 Định nghĩa mơ thuật tốn Mơ thuật tốn q trình tách liệu, thao tác tạo giao diện đồ hoạ mơ cho q trình - 11 - Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT 1.2 Mục đích mơ thuật tốn Mơ thuật tốn sử dụng đồ hoạ để mô tả cấu trúc liệu bên thuật toán thực chương trình biểu diễn thay đổi cấu trúc liệu trạng thái thực thi hoạt động chương trình Trong suốt q trình mơ tả, người sử dụng thấy bước thực chương trình thấy chi tiết nhỏ thuật toán hiểu sâu Vì thế, mơ thuật toán giúp cho người sử dụng hiểu thuật toán Trong q trình mơ phỏng, người sử dụng thấy chương trình họ thi hành nào, đánh giá thay đổi liệu qua bước ảnh hưởng đến bước Nó giúp người sử dụng phát lỗi chương trình (nếu có), Từ tìm lỗi sửa lại chương trình để chạy xác ổn định 1.3 u cầu mơ thuật tốn a Phản ánh nội dung thuật tốn Thuật tốn mơ phải xác, bước thuật tốn phải trực quan phản ánh đứng nội dung thuật toán để thể tính đắn thuật tốn b Có thể thực giải thuật theo bước để theo dõi giá trị biến đối tương tốn Q trình mơ diễn liên tục, biểu diễn thuật toán từ đầu đến cuối Tuy nhiên, q trình mơ thuật tốn có nhu cầu theo dõi bước giải thuật xem chạy hay chưa, biến đối tượng thay đổi Do thiết kế giải thuật chương trình cần phải có nút tạm dừng để dừng chương trình nút tiếp tục để tiếp tục trình mơ c Có hình ảnh động (có thể có âm cần) để mơ tả trực tiếp q trình thi hành thuật tốn Q trình mơ tả trực quan q trình hành thuật tốn để biết chất bên vấn đề gì, điều đồng nghĩa với việc phải có hình ảnh động để mơ tả thuật - 12 - Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT toán hoạt động nào, biến thay đổi từ kích thích tư sáng tạo học sinh thu hút ý người học Bên cạnh q trình mơ thêm sinh động chèn thêm âm vào phần mềm, có nút chỉnh âm để lúc cần bật hay tắt cách chủ động d Có thể kiểm định thuật toán trường hợp ngẫu nhiên, trường hợp xấu nhất, trường hợp tốt Để kiểm định thuật toán ta phải thử với liệu vào ngẫu nhiên liệu mẫu liệu người dùng nhập vào Nếu kết chạy chương trình ổn định thuật tốn đắn chương trình đánh giá cao e Tạo mức độ sử dụng khác cho người học Do đối tượng người học có trình độ nhận thức khác (tốt, khá, trung bình, yếu) Để tạo mức độ sử dụng khác cho người học, chương trình thiết kế mơ cần đặt thời gian để chạy chương trình (nhanh, trung bình, chậm) để phủ hợp với theo dõi tiếp thu giải thuật đối tượng người học II PHÂN TÍCH THIẾT KẾ 2.1 Cấu trúc liệu lưu trữ a Ngơn ngữ lập trình sử dụng Visual FoxPro ngơn ngữ lập trình quản trị liệu lâu đời, ngồi Visual FoxPro ngơn ngữ lập trình hướng đối tượng Nó có khả tạo lớp đối tượng, điều khiển chương trình thơng qua tác vụ đối tượng Đối tượng mà Visual FoxPro tạo đa dạng, phong phú, chứa hình ảnh sống động, thích hợp cho việc mơ thuật tốn Là ngơn ngữ lập trình phù hợp cho việc tạo phần mềm dạy học b.Phân tích giải thuật đưa cấu trúc liệu Cây AVL cài đặt trỏ Mỗi nút đối tượng có tên NODE gồm Các thuộc tính sau: - 13 - Nguyễn Thị Thu Hương – Ak54 -CNTT Báo cáo khoa học: Lý thuyết mô AVL Thuộc tính Ý nghĩa Thuộc tính Ý nghĩa Value_n Giá trị Node Child_l Con trái node Child_r Con phải node Parent_n Cha node Canh Cạnh nối với cha Hs_canbang Hệ số cân x hoành độ nút form y tung độ nút form Trong trường hợp node khơng có trái, khơng có phải thuộc tính Child_l, Child_r trỏ đến NULL Vấn đề đặt ra: làm để hiển thị nhị phân cân đối, phù hợp với kích thước Form Vì ta sử dụng cách duyệt sau Tức tính toạ độ trước, toạ độ node tính sau: node.x = (node.child_l.x + node.child_r.y)/2; node.y = node.child_l.y – dy(dy: khoảng cách node hai nó) Các node là cách khoảng dx Nhưng cách tính toạ độ phù hợp với nhị phân mà node phải có đầy đủ Nhưng AVL chưa thoả mãn điều Giải vấn đề: Bằng cách làm cho tất nút có đầy đủ Vì ta xây dựng đối tượng có tên NULL, đối tượng sử dụng làm tất nút có trái phải NULL Đối tượng NULL gồm có thuộc tính sau: Thuộc tính Ý nghĩa Thuộc tính Ý nghĩa Paretn_n Trỏ tới cha x, y Toạ độ Form Trong trường hợp nút gốc, tức node khơng có cha thuộc tính Parent_n trỏ đến giá trị F Sở dĩ thêm thuộc tính Parent_n vào để thuận tiện cho việc tái cân cho AVL - 14 - Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT Thuộc tính cạnh đối tượng line: Có tác dụng nối node cha Thuộc tính Hs_canbang: nhận giá trị từ -2 -> -2: Cây phải cao so với trái -1: Cây phải cao so với trái 0: Cây trái phải có chiều cao 1: Cây trái cao so vơi phải 2: Cây trái cao so vơi phải Vấn đề đặt đặt ra: Trường hợp hệ số cân nút -2 trường hợp bị cân đối Cần phải tái cân đối lại phép xoay Giải vấn đề: ta xây dựng phương thức Quay_trai, Quay_phai nút Trong phép Quay_trai: Con trái đưa lên vị trí nút Các bước thực Quay trái Node1 Parent_n = node2.Parent_n IF Node2 != gốc THEN {Node1.parent_n.child_l = Node1 (Node1.parent_n.child_r = Node1)} Node2.child_l = Node1.child_r Node2.child_l.parent_n=Node2 Node1.child_r = node2 Node2.parent_n = Node1 Trong phép Quay_phai: Con phải đưa lên vị trí nút - 15 - Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT Các bước thực Quay phải Node2 Parent_n = node1.Parent_n IF Node1 != gốc THEN {Node2.parent_n.child_l = Node2 (Node2.parent_n.child_r = Node2)} Node1.child_r = Node2.child_l Node1.child_r.parent_n=Node1 Node2.child_l = node1 Node1.parent_n = Node2 Ta có hàm: add_ node(Nkey): tạo node có giá trị nkey, đồng thời với việc tạo node ta tạo node Null, nốt Null gán làm trái node sinh Node sinh có vị trí tai gốc Gốc điểm mốc mà ta chọn để đánh dấu toạ độ ROO Ta có hàm: add_ nkey(Nkey, onode): hàm có tác dụng thêm vào onode nút có giá trị nkey Bước 1: Tìm vị trí Nkey thêm vào qua hàm tim_vi_tri(nkey): Hàm thể trình tìm vị trí cần chèn vào Lúc có Node có nhãn Nkey di chuyển Node có nhãn Nkey biến form có tên Newnode1, sau tìm vị trí Newnode1 biến Bước 2: Nếu onode Null gọi đến hàm newnode= add_ node(Nkey) Sau thay Newnode vào vị trí Onode Onode gán làm child_r newnode Nếu onode khơng Null gọi đến add_nkey(nkey, onode.child_l) add_nkey(nkey, onode.child_r) tuỳ vào giá trị nkey - 16 - Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT Bước 3: Hiển thị Bước 4: Kiểm tra tính cân cây, cân tái cân lại, trình thực qua hàm Test(Onode): Hàm kiểm tra tính cân bằng, khơng cân tái cân bằng, sau hiển thị sau cân Hàm Test(Onode): Hàm tự phân trường hợp cân để tái cân lại Giá trị Onode ban đầu Node thêm vào Hàm lên đến node tiền bối Onode, kiểm tra tính cân tái cân băng gặp cân 2.2 Xây dựng mơ hình mơ liệu vào liệu Trong yêu cầu mô thuật tốn có u cầu: kiểm định thuật toán trường hợp ngẫu nhiên, trường hợp xấu nhất, tốt Ta có mơ hình mơ liệu vào liệu sau: a.Vậy phải xây dựng mẫu liệu vào: Dữ liệu mẫu: liệu ghi lại từ trước, muốn sử dụng việc lấy Có tác dụng cho người sử dụng đỡ công nhập lại liệu (trong trường hợp liệu lớn thời gian), để kiểm định thuật tốn trường hợp xấu, trung bình tốt - 17 - Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT Dữ liệu sinh ngẫu nhiên: sử dụng hàm Random để sinh giá trị liệu hạn chế khoảng đó, mặc định sinh tuỳ theo mong muốn người lập trình Dữ liệu nhập trực tiếp: liệu người dùng nhập vào từ bàn phím, đa số dạng liệu thường sử dụng người dùng muốn kiểm định liệu nhập vào Người dùng sinh liệu Node 1, sinh liệu lúc nhiều node b.Xây dựng mẫu liệu ra: Phần mềm mô phải có hình ảnh động để mơ tả trực quan q trình thi hành thuật tốn Vì kết chạy chương trình phải diễn từ từ Khi thêm nút ta phải mơ tả trực quan q trình tìm vị trí nút, tức nút di chuyển chậm, tìm vị trí, sau thêm vào vị trí tìm Vậy đối tượng NODE ta phải xây dựng hàm di chuyển Di_chuyen(x,y): Có tác dụng di chuyển node từ vị trí cũ đến toạ độ (x,y): Thủ tục WAIT '' TIMEOUT Time: có tác dụng cho đoạn chương trình rừng lại khoảng thời gian time giây Vậy trình di chuyển node dịch chuyển đoạn dx, dy nhỏ,cho chương trình rừng lại thời gian tuỳ người lập trình, người dùng chọn chương trình chạy nhanh, bình thường hay chậm tuỳ ý Cách tính dx, dy: Chương trình If Giải thích Kiểm tra xem, vị trí di chuyển đến Abs(x0-x)>Abs(y0-y) If x>x0 dx=h Else tung độ có khoảng cách lớn hơn, hay hồnh độ lớn Lấy khoảng cách lớn để từ tính số bước làm đối tượng dx=-h di chuyển mịn đẹp Endif Khi biết dx tính dy: so_buoc=Abs(Int((x- - 18 - Nguyễn Thị Thu Hương – Ak54 -CNTT Báo cáo khoa học: Lý thuyết mô AVL x0)/dx)) Dy = dx*(y-y0)/(x- x0) dy=dx*(y-y0)/(x-x0) Khi biết dy tính đựoc dx: Else If y>y0 Dx= dy*(x-x0)/(y-y0) dy=h dx>0 x>x0 ngược lại Else dy>0 y>y0 ngược lại dy=-h Endif so_buoc=Abs(Int((yy0)/dy)) dx=dy*(x-x0)/(y-y0) Endif Phải mơ q trính quay trái, quay phải cách trực quan để học sinh hiểu Vậy có Form để mơ q trình Do phần mềm mơ thuật tốn cho học sinh, mà thuật tốn trừu tượng thường gây khó khăn cho q trình nhận thức học sinh (nhất với học sinh yếu kém) Do phần mềm cần thiết kế cho giải thuật chia thành nhiều bước riêng rẽ để bước giải thuật ta giải thích cho người học thấy chất bên thuật toán (các biến đổi nào, chạy sao) để từ người học dễ dàng tiếp thu giải thuật cách dễ dàng nhanh chóng Thao tác xố: viết cho kiện Click chuột vào đối tượng NODE 2.3 Sản phẩm mẫu Hình ảnh form - 19 - Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT 2.4 Đánh gía ý tưởng phát triển Ưu điểm: Phần mềm mô cho người dùng thấy tổng quan giải thuật nhị phân tự cân AVL Phần mềm tạo giao diện đồ hoạ thân thiện, dễ sử dụng, Người học tiếp thu cách nhanh chóng tư tưởng giải thuật Nhược điêm: Phần mềm mô chưa tiện dụng với người học Chưa có thao tác kéo thả với đối tượng Giao diện đồ học chưa sống động, mầu sắc chưa hài hồ Phong cách lập trình chưa có tính chuyên nghiệp Phát triển: Phần mềm mô phát triển lên tiếp đề tài khoá luận: Phần mềm có khả kéo thả đối tượng, có hệ thống menu chuyên nghiệp hơn, giao diện bao gổm hình ảnh động âm Phát triển thành Phần mềm ứng dụng giảng dạy môn cấu trúc liệu cho sinh viên học sinh - 20 - Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT TÀI LIỆU THAM KHẢO [1].Thầy: Đỗ Xuân Lôi: “Cấu trúc liệu giải thuật”.Nhà xuất đại học quốc gia Hà Nội 1993 [2] Thầy: Nguyễn Xuân Huy: “Thuật toán” Nhà xuất thống kê – 1998 [3] Cô: Trần Hạnh Nhi: “Cấu trúc liệu” Trung tâm phát triển công nghệ thông tin, chương trình đào tạo từ xa [4].Bách khoa tồn thư mở Wikipedia [5] Thầy: Nguyễn Hữu Dung: “Lập trình hướng đối tượng Visual Foxpro” Trường đại học Sư phạm Hà Nội [6] Thầy: Nguyễn Ngọc Minh: “Visual FoxPro 6.0” Nhà xuất Lao động – xã hội - 21 - ... 20 TÀI LIỆU THAM KHẢO 21 -2- Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương – Ak54 -CNTT LÝ THUYẾT VÀ MÔ PHỎNG CÂY AVL PHẦN MỞ ĐẦU Lý chọn đề tài Hiện nay, công nghệ thông... O(n) PHẦN 2: MÔ PHỎNG I LÝ THUYẾT MÔ PHỎNG 1.1 Định nghĩa mơ thuật tốn Mơ thuật tốn trình tách liệu, thao tác tạo giao diện đồ hoạ mơ cho q trình - 11 - Báo cáo khoa học: Lý thuyết mô AVL Nguyễn... nhị phân tìm kiếm cân đối AVL Tính ứng dụng AVL lớn, chương trình chưa học, nên em mong muốn làm mô giải thuật AVL để người học có -3- Báo cáo khoa học: Lý thuyết mô AVL Nguyễn Thị Thu Hương –