Trang 1 BÀI GIẢNG Trang 2 NỘI DUNGCHƯƠNG I: MỞ ĐẦUCHƯƠNG II: NGĂN XẾP VÀ HÀNG ĐỢICHƯƠNG III GIẢI THUẬT SẮP XẾPCHƯƠNG IV: CÂY Trang 3 CHƯƠNG I: MỞ ĐẦU1.1.Giải thuật và cấu trúc dữ liệu
BÀI GIẢNG CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NỘI DUNG CHƯƠNG I: MỞ ĐẦU CHƯƠNG II: NGĂN XẾP VÀ HÀNG ĐỢI CHƯƠNG III GIẢI THUẬT SẮP XẾP CHƯƠNG IV: CÂY CHƯƠNG V: GIẢI THUẬT ĐỆ QUI CHƯƠNG I: MỞ ĐẦU 1.1.Giải thuật cấu trúc liệu - Thông thường nói đến việc giải tốn người ta ý tới giải thuật (algorithms) - Vì vậy: giải thuật dãy câu lệnh (statements) chặt chẽ rõ ràng xác định thao tác đối tượng cho sau số hữu hạn bước thực ta đạt kết mong muốn - Xét cho giải thuật phản ánh phép xử lý máy tính điện tử, cịn liệu với biểu diễn thơng tin cần thiết cho tốn - Như cấu trúc liệu giải thuật có mối quan hệ mật thiết với Khơng thể nói tới cấu trúc liệu mà khơng nói tới giải thuật ngược lại 1.2.Cấu trúc liệu vấn đề liên qua 1.2.1.Trong toán liệu bao gồm tập phần tử sở mà ta gọi liệu nguyên tử Chúng chữ số, kí tự số hay từ 1.2.2.Cách biểu diễn cấu trúc liệu nhớ gọi cấu trúc lưu trữ 1.2.3.Trong ngôn ngữ lập trình có cấu trúc liệu tiền định, chẳng hạn cấu trúc mảng 1.3.Ngôn ngữ diễn đạt giải thuật Bao gồm Pascal, C, C++…nhưng gặp số hạn chế - Phải tuân thủ quy tắc chặt chẽ cú pháp ngơn ngữ dẫn đến việc trình bày giải thuật cấu trúc liệu có phần gị bó nặng nề - Phải phụ thuộc vào cấu trúc liệu tiền định ngôn ngữ nên ta đầy đủ ý cấu trúc mà ta muốn biểu đạt - Ngôn ngữ chọn chưa khiến người u thích muốn sử dụng Vì ta dùng ngơn ngữ “thơ hơn” có đủ khả biểu đạt giải thuật cấu trúc đề cập đến “giả ngơn ngữ” ngôn ngữ “tựa Pascal” 1.3.1.Quy cách cấu trúc chương trình Mỗi chương trình gán tên để phân biệt tên chương trình đứng sau từ khóa “Program” - Độ dài tên chương trình khơng hạn chế Sau tên kèm theo lời thuyết minh đặt cặp dấu {…} 1.3.2.Kí tự biểu thức - 26 chữ Latinh in hoa in thường - 10 chữ số thập phân - Các dấu phép toán số học: +, -,*,/, lũy thừa - Các dấu phép toán quan hệ: , =,= , - Giá trị logic: true, false - Dấu phép toán logic: and, or, not - Tên biến: dãy chữ chữ số, bắt đầu chữ - Biến số có dạng:A[i], B[i,j] 1.3.3.Các câu lệnh (hay thị) Các câu lệnh chương trình viết cách dấu ; bao gồm: a.Câu lệnh gán Có dạng: V:=E Trong đó: V tên biến tên hàm E biểu thức Ta dùng phép gán chung: Ví dụ: A:=B:=1 b.Câu lệnh ghép Có dạng; Begin S1,S2…Sn; end Với Si, i=1…n câu lệnh 1.3.3.3.Câu lệnh điều kiện Có dạng; if B then S Trong đó: B biểu thức logic S kết câu lệnh khác Có thể diễn tả sơ đồ true S B false Hoặc: true S1 B false S2 1.3.4.Câu lệnh tuyển Case B1: S1; B2: S2; … Bn-1: Sn-1; else: Sn End case Trong đó: Bi(i=1,2,…n) điều kiện Si(i=1,2,…n) câu lệnh Sơ đồ: false false… false B1 B2 Bn-1 true true true S1 S2 Sn Sn-1 1.3.3.5.Câu lệnh lặp *Lặp với số lần biết trước For i:=m to n S Nhằm thực câu lệnh S với i lấy giá trị nguyên m tới n (n>=m) với bước nhảy tăng Hoặc : for i :=n down to m S *Lặp với số lần trước While B S true B S false Khi B có giá trị True thực S Hoặc : Repeat S until B Lặp lại S tới B nhận giá trị True true B S false