Khi viết một chương trình máy tính, ta thường cài đặt một phương pháp đã được nghĩ ra trước đó để giải quyết một vấn đề. Phương pháp này thường là độc lập với một máy tính cụ thể sẽ được dùng để cài đặt: hầu như nó thích hợp cho nhiều máy tính. Trong bất kỳ trường hợp nào, thìphương pháp, chứ không phải là bản thân chương trình máy tính là cái được nghiên cứu để học cách làm thế nào để tấn công vào bài toán. từ “Giải thuật” hay “Thuật toán” được dùng trong khoa học máy tính để mô tả một phương pháp giải bài toán thích hợp như là cài đặt các chương trình máy tính. Giải thuật chúng là các đối tượng nghiên cứu trung tâm trong hầu hết các lĩnh vực của Tin học. Các chương trình máy tính thường quá tối ưu, đôi khi chúng ta không cần một thuật toán quá tối ưu, trừ khi một thuật toán được dùng lại nhiều lần. Nếu không chỉ cần một cài đặt đơn giản và cẩn thận là đủ để ta có thể tin tưởng rằng nó sẽ hoạt động tốt và nó có thể chạy chậm hơn 5 đến mười lần một phiên bản tốt, điều này có nghĩa nó có thể chạy chậm hơn vài giây, trong khi nếu ta chọn và thiết kế một cài đặt tối ưu và phức tạp ngay từ đầu thì có thể sẽ tốn nhiều phút, nhiều giờ… Do vậy ở đây ta sẽ xem xét các cài đặt hợp lý đơn giản của các thuật toán tốt nhất.
37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình Cấu trúc liệu giải thuật Biên tập bởi: Khoa CNTT ĐHSP KT Hưng Yên 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình Cấu trúc liệu giải thuật Biên tập bởi: Khoa CNTT ĐHSP KT Hưng Yên Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên Phiên trực tuyến: http://voer.edu.vn/c/60bbf7d3 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình MỤC LỤC Giải thuật cấu trúc liệu Phân tích thiết kế tốn Phân tích thời gian thực thuật toán Mảng dánh sách Danh sách nối đơn (Singlely Linked List) Thực hành cài đặt danh sách nối đơn Danh sách tuyến tính ngăn xếp (Stack) Danh sách tuyến tính kiểu hàng đợi Thực hành đặt danh sách kiểu hàng đợi 10 Danh sách nối vòng nối kép 11 Thực hành cài đặt danh sách liên kết kép 12 Kiểu liệu 13 Thực hành cài đặt nhị phân 14 Cây nhị phân ứng dụng 15 Thực hành cài đặt nhị phân tìm kiếm 16 Kiểm tra thực hành tổng kết module Tham gia đóng góp 1/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình Giải thuật cấu trúc liệu GIẢI THUẬT Khi viết chương trình máy tính, ta thường cài đặt phương pháp nghĩ trước để giải vấn đề Phương pháp thường độc lập với máy tính cụ thể dùng để cài đặt: thích hợp cho nhiều máy tính Trong trường hợp nào, thìphương pháp, khơng phải thân chương trình máy tính nghiên cứu để học cách làm để công vào toán từ “Giải thuật” hay “Thuật toán” dùng khoa học máy tính để mơ tả phương pháp giải tốn thích hợp cài đặt chương trình máy tính Giải thuật chúng đối tượng nghiên cứu trung tâm hầu hết lĩnh vực Tin học Các chương trình máy tính thường q tối ưu, đơi khơng cần thuật toán tối ưu, trừ thuật tốn dùng lại nhiều lần Nếu khơng cần cài đặt đơn giản cẩn thận đủ để ta tin tưởng hoạt động tốt chạy chậm đến mười lần phiên tốt, điều có nghĩa chạy chậm vài giây, ta chọn thiết kế cài đặt tối ưu phức tạp từ đầu tốn nhiều phút, nhiều giờ… Do ta xem xét cài đặt hợp lý đơn giản thuật tốn tốt Thơng thường để giải tốn ta có lựa chọn nhiều thuật toán khác, việc lựa chọn thuật tốn tốt vấn đề tương đối khó khăn phức tạp, thường cần đến trình phân tích tinh vi tin học Khái niệm Giải thuật có từ lâu nhà tốn học người Arập phát ngơn, thuật tốn tiếng có từ thời cổ Hylạp thuật tốn Euclid (thuật tốn tìm ước số chung lớn số) Phương pháp cộng, nhân, chia… hai số giải thuật… Trong Tin học khái niệm giải thuật trình bày sau: Giải thuật câu lệnh (Statements) chặt chẽ rõ ràng xác định trình tự thao tác số đối tượng cho sau số hữu hạn bước thực ta đạt kết mong muốn (Thuật toán dãy hữu hạn bước, bước mơ tả xác phép tốn hành động cần thực hiện, để giải vấn đề) Đối tượng Input kết mong muốn Output thuật tốn Euclid 2/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình MỐI QUAN HỆ GIỮA CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Thực đề án tin học chuyển toán thực tế thành tốn giải máy tính Một toán thực tế bao gồm đối tượng liệu yêu cầu xử lý đối tượng Vì thế, để xây dựng mơ hình tin học phản ánh toán thực tế cần trọng đến hai vấn đề : Tổ chức biểu diễn đối tượng thực tế : Các thành phần liệu thực tế đa dạng, phong phú thường chứa đựng quan hệ với nhau, mơ hình tin học toán, cần phải tổ chức , xây dựng cấu trúc thích hợp cho vừa phản ánh xác liệu thực tế này, vừa dễ dàng dùng máy tính để xử lý Công việc gọi xây dựng cấu trúc liệu cho toán Xây dựng thao tác xử lý liệu: Từ yêu cầu xử lý thực tế, cần tìm giải thuật tương ứng để xác định trình tự thao tác máy tính phải thi hành kết mong muốn, bước xây dựng giải thuật cho toán Tuy nhiên giải toán máy tính, thường có khuynh hướng trọng đến việc xây dựng giải thuật mà quên tầm quan trọng việc tổ chức liệu toán Giải thuật phản ánh phép xử lý , đối tượng xử lý giải thuật lại liệu, liệu chứa đựng thông tin cần thiết để thực giải thuật Để xác định giải thuật phù hợp cần phải biết tác động đến loại liệu (ví dụ để làm nhuyễn hạt đậu , người ta dùng cách xay khơng băm dao, đậu văng ngoài) chọn lựa cấu trúc liệu cần phải hiểu rõ thao tác tác động đến (ví dụ để biểu diễn điểm số sinh viên người ta dùng số thực thay chuỗi ký cịn phải thực thao tác tính trung bình từ điểm số đó) Như đề án tin học, giải thuật cấu trúc liệu có mối quan hệ chặt chẽ với nhau, thể qua công thức : Cấu trúc liệu + Giải thuật = Chương trình Với cấu trúc liệu chọn, có giải thuật tương ứng, phù hợp Khi cấu trúc liệu thay đổi thường giải thuật phải thay đổi theo để tránh việc xử lý gượng ép, thiếu tự nhiên cấu trúc không phù hợp Hơn nữa, cấu trúc liệu tốt giúp giải thuật xử lý phát huy tác dụng tốt hơn, vừa đáp ứng nhanh vừa tiết kiệm vật tư, giải thuật dễ hiễu đơn giản 3/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình Ví dụ 1.1: Một chương trình quản lý điểm thi sinh viên cần lưu trữ điểm số sinh viên Do sinh viên có điểm số ứng với mơn học khác nên liệu có dạng bảng sau: Sinh viên Môn Môn Môn3 Môn4 SV SV SV Chỉ xét thao tác xử lý xuất điểm số môn sinh viên Giả sử có phương án tổ chức lưu trữ sau: Phương án : Sử dụng mảng chiều Có tất 3(SV)*4(Mơn) = 12 điểm số cần lưu trữ, khai báo mảng result sau : int result [ 12 ] = {7, 9, 5, 2,5, 0, 9, 4,6, 3, 7, 4}; mảng result phần tử lưu trữ sau: Và truy xuất điểm số môn j sinh viên i - phần tử (dòng i, cột j) bảng phải sử dụng công thức xác định số tương ứng mảng result: bảngđiểm(dòng i, cột j) ⇒ result[((i-1)*số cột) + j] Ngược lại, với phần tử mảng, muốn biết điểm số sinh viên nào, mơn gì, phải dùng cơng thức xác định sau result[ i ] ⇒ bảngđiểm (dòng((i / số cột) +1), cột (i % số cột) ) Với phương án này, thao tác xử lý cài đặt sau : void XuatDiem() //Xuất điểm số tất sinh viên{ const int so_mon = 4;int sv,mon;for (int i=0; i info then insert (Right, x) else if x < info then insert (left, x); End; Giải thuật lặp Trong thủ tục ta sử dụng biến trỏ địa phương q chạy đỉnh gốc Khi đỉnh đó, q xuống đỉnh trái (phải) tuỳ theo khoá đỉnh lớn (nhỏ hơn) khoá x Ở đỉnh p muốn xuống đỉnh trái (phải) phải kiểm tra xem đỉnh có đỉnh trái (phải) khơng Nếu có tiếp tục xuống, ngược lại treo đỉnh vào bên trái (phải) đỉnh Điều kiện q = nil kết thúc vịng lặp Q trình lại lặp có đỉnh chèn vào procedure Insert (var Root : Tree; x: keytype) var p, q : tree; begin 145/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình New(p); P^.info :=x; if Root = nil then Begin Root:=p; P^.left:= nil; P^.right:= nil; End Else Begin q:=Root; while q nil if x < q^.info then if q^.left nil then q := q^.left else begin q^.left :=p; p := nil; end else if x > q^.info then if q^.right nil then q:=q^.right else begin q^.right :=p; 146/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình q =nil; end; end; end; Nhận xét: Để dựng CNPTK ứng với dãy khoá đưa vào cách liên tục bổ nút ứng với khoá, rỗng Ban đầu phải dựng lên với nút gốc khố sau khố tiếp theo, tìm khơng có bổ sung vào Ví dụ với dãy khố: 42 23 74 11 65 58 94 36 99 87 nhị phân tìm kiếm dựng có dạng hình 5.20 23744211366594589987 Hình 5.20 Một nhị phân tìm kiếm d)Loại bỏ nút nhị phân tìm kiếm Đối lập với phép toán chèn vào phép toán loại bỏ Chúng ta cần phải loại bỏ khỏi CNPTK đỉnh có khố x (ta gọi tắt nút x) cho trước, cho việc huỷ nút khỏi phải bảo đảm điều kiện ràng buộc CNPTK Có ba trường hợp huỷ nút x xảy ra: • X nút • X nút nửa ( có trái phải) • X có đủ hai (trường hợp tổng quát) Trường hợp thứ nhất: đơn giản huỷ nút x khơng liên quan đến phần tử khác 320TCây trước xoá20TCây sau xoá Hình 5.21 Trường hợp thứ hai: Trước xố nút x cần móc nối cha x với nút (nút trái nút phải) T22010318T1 147/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình T2201025318T1 a) Cây trước xốb) Cây sau xoá đỉnh (25) Trường hợp tổng quát: nút bị loại bỏ có trái phải, nút thay nút ứng với khoá nhỏ sát trước (nút cực phải trái nó) nút ứng với khố lớn sát sau (nút cực trái phải nó) Như ta phải thay đổi số mối nối nút: • Nút cha nút bị loại bỏ • Nút chọn làm nút thay • Nút cha nút chọn làm nút thay T2b) Cây sau xoá đỉnh 201810253T1T2a) Cây trước xoá đỉnh 20201025318T1 Trong ví dụ ta chọn nút thay nút bị xoá nút cực phải trái (nút 18) T5ABT4CET2T3T1RQTSa) Cây trước xoá nút trỏ QT5AEBT4CT2T1RQTST3b) Cây sau xoá nút trỏ Q Sau giải thuật thực việc loại bỏ nút trỏ Q Ban đầu Q nối trái nối phải nút R nhị phân tìm kiếm, mà ta giả sử biết procedure Del (var Q: Tree); {xoá nút trỏ Q} var T, S : Tree; begin P := Q; {Xử lý trường hợp nút nút nửa lá} if P^.left = nil then Begin Q:=P^.right ;{R^.left := P^.right} Dispose(P); end else if P^.right = nil then 148/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình begin Q :=P^.left; Dispore (P); end else { Xử lý trường hợp tổng quát} begin T := P^.left; if T^.right = nil then begin T^.right := P^.right; Q := T; Dispose (P); end else begin S := T^.right; {Tìm nút thay thế, nút cực phải } while S^.right nil begin T := S; S := T^.right; end; 149/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dòng sông a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình S^.right := P^.right; T^.right := S^.left; S^.left := P^.left; Q:=S; Dispose(p); end; end; end; Thủ tục xoá trường liệu X • Tìm đến nút có trường liệu X • Áp dụng thủ tục Del để xố Sau viết thủ tục loại khỏi gốc Root đỉnh có khố x cho trước Đó thủ tục đệ qui, tìm đỉnh có khố x, sau áp dụng thủ tục Del để loại đỉnh khỏi procedure Delete (var Root :Tree ; x : keytype); begin if Root nil then if x < Root^.info then Delete (Root^.left, x) else if x > Root^.info then Delete (Root^.right, x) else Del(Root); end; Nhận xét: Việc huỷ tồn thực thông qua thao tác duyệt theo thứ sau Nghĩa ta huỷ trái, phải huỷ nút gốc procedure RemoveTree (var Root: Tree); 150/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình begin if Root nil then begin RemoveTree(Root^.left); RemoveTree(Root^.right); Dispose (Root); end; end; 151/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình Thực hành cài đặt nhị phân tìm kiếm THỰC HÀNH CÀI ĐẶT CÂY NHỊ PHÂN TÌM KIẾM Cài đặt nhị phân tìm kiếm với phương thức: Khởi tạo Thêm nút Xóa nút Tìm kiếm 152/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình Kiểm tra thực hành tổng kết module KIỂM TRA THỰC HÀNH Chia nhóm tiến hành kiểm tra, đánh giá TỔNG KẾT MODUL Trao đổi tập, tập thực hành Hệ thống kiến thức modul học Mở rộng kiến thức môn học 153/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình Tham gia đóng góp Tài liệu: Cấu trúc liệu giải thuật Biên tập bởi: Khoa CNTT ĐHSP KT Hưng Yên URL: http://voer.edu.vn/c/60bbf7d3 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Giải thuật cấu trúc liệu Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/8b6180c7 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Phân tích thiết kế toán Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/32569f6a Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Phân tích thời gian thực thuật toán Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/a7204439 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Mảng dánh sách Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/9461a675 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Danh sách nối đơn (Singlely Linked List) Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/578aa05e Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Thực hành cài đặt danh sách nối đơn Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/1038f94e 154/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Danh sách tuyến tính ngăn xếp (Stack) Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/a208ce0f Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Danh sách tuyến tính kiểu hàng đợi Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/387652b5 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Thực hành đặt danh sách kiểu hàng đợi Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/27f6f7c3 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Danh sách nối vòng nối kép Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/556b338a Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Thực hành cài đặt danh sách liên kết kép Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/b1a9a363 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Kiểu liệu Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/2ff63fcb Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Thực hành cài đặt nhị phân Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/a5c4789c Giấy phép: http://creativecommons.org/licenses/by/3.0/ 155/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình Module: Cây nhị phân ứng dụng Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/58472201 Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Thực hành cài đặt nhị phân tìm kiếm Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/c00632bd Giấy phép: http://creativecommons.org/licenses/by/3.0/ Module: Kiểm tra thực hành tổng kết module Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên URL: http://www.voer.edu.vn/m/a852a6eb Giấy phép: http://creativecommons.org/licenses/by/3.0/ 156/157 37 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh d Bập bẹ e 41 Con ngựa a Bất hảo b Bất kha m c Bất hủ d Bất minh 42 Tá c phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất o b Bất kham c Bất hủ d Bất mi nh 44 Qua n hệ a Bất hảo b Bất kham c Bất h ủ d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm d Ê m đềm Dịng sơng a Êm ấm b Êm dị u c Ê m d Ê m đề m 47 Gia đình a Êm ấ m b Ê m dịu c Êm d Êm đềm Mùi hương a Ê m ấm b Êm dịu c Ê m d Ê m đề m 49 Tấm lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa Khí phách a Hào hùng b Hào hiệ p c Hà o phóng d Hà o hoa Dáng điệu a Hào hùng b Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình Chương trình Thư viện Học liệu Mở Việt Nam Chương trình Thư viện Học liệu Mở Việt Nam (Vietnam Open Educational Resources – VOER) hỗ trợ Quỹ Việt Nam Mục tiêu chương trình xây dựng kho Tài nguyên giáo dục Mở miễn phí người Việt cho người Việt, có nội dung phong phú Các nội dung đểu tuân thủ Giấy phép Creative Commons Attribution (CC-by) 4.0 nội dung sử dụng, tái sử dụng truy nhập miễn phí trước hết trong môi trường giảng dạy, học tập nghiên cứu sau cho tồn xã hội Với hỗ trợ Quỹ Việt Nam, Thư viện Học liệu Mở Việt Nam (VOER) trở thành cổng thông tin cho sinh viên giảng viên ngồi Việt Nam Mỗi ngày có hàng chục nghìn lượt truy cập VOER (www.voer.edu.vn) để nghiên cứu, học tập tải tài liệu giảng dạy Với hàng chục nghìn module kiến thức từ hàng nghìn tác giả khác đóng góp, Thư Viện Học liệu Mở Việt Nam kho tàng tài liệu khổng lồ, nội dung phong phú phục vụ cho tất nhu cầu học tập, nghiên cứu độc giả Nguồn tài liệu mở phong phú có VOER có chia sẻ tự nguyện tác giả ngồi nước Q trình chia sẻ tài liệu VOER trở lên dễ dàng đếm 1, 2, nhờ vào sức mạnh tảng Hanoi Spring Hanoi Spring tảng công nghệ tiên tiến thiết kế cho phép công chúng dễ dàng chia sẻ tài liệu giảng dạy, học tập chủ động phát triển chương trình giảng dạy dựa khái niệm học liệu mở (OCW) tài nguyên giáo dục mở (OER) Khái niệm chia sẻ tri thức có tính cách mạng khởi xướng phát triển tiên phong Đại học MIT Đại học Rice Hoa Kỳ vịng thập kỷ qua Kể từ đó, phong trào Tài nguyên Giáo dục Mở phát triển nhanh chóng, UNESCO hỗ trợ chấp nhận chương trình thức nhiều nước giới 157/157 ... học, giải thuật cấu trúc liệu có mối quan hệ chặt chẽ với nhau, thể qua công thức : Cấu trúc liệu + Giải thuật = Chương trình Với cấu trúc liệu chọn, có giải thuật tương ứng, phù hợp Khi cấu trúc. .. chức liệu định, cách tổ chức liệu khác hiệu khơng thể thực Chính nên bước xây dựng cấu trúc liệu khơng thể tách rời bước tìm kiếm thuật toán giải vấn đề Các tiêu chuẩn lựa chọn cấu trúc liệu • Cấu. .. nghiệm: Đừng viết chương trình mà chưa suy xét kỹ giải thuật liệu cần thao tác, ta dễ mắc phải hai sai lầm trầm trọng: sai giải thuật, giải thuật triển khai cấu trúc liệu không phù hợp Chỉ cần