... QUAN VỀ CẤU TRÚC DỮLIỆU VÀ GIẢI THUẬT Giáo trình tin học: Tìm hiểu tầmquantrọng cấu trúc liệu giải thuật 1.1 Tầmquantrọng cấu trúc liệu giải thuật đề án tin học 1.1.1 Xây dựng cấu trúc liệu ... máy tính mà liệu để xử lý Dữliệuliệu đưa vào (input data), liệutrung gian liệu đưa (output data) Do vậy, việc tổ chức để lưu trữ liệu phục vụ cho chương trình có ý nghóa quantrọng toàn hệ ... ngữ cụ thể 1.1.3 Mối quan hệ cấu trúc liệu giải thuật Mối quan hệ cấu trúc liệu Giải thuật minh họa đẳng thức: Cấu trúc liệu + Giải thuật = Chương trình Như vậy, có cấu trúc liệu tốt, nắm vững...
... Giáo trình: Cấu Trúc DữLiệu Giải Thuật ÔN TẬP (REVIEW) Hệ thống lại Cấu trúc liệu Giải thuật học Chương 1: Tổng quan Cấu Trúc DữLiệu Giải Thuật Tầmquantrọng Cấu trúc liệu Giải thuật đề án ... toán Kiểu liệu 3.1 Khái niệm Kiểu liệu T = {V, O} 3.2 Các kiểu liệu sở - Nguyên - Thực - Ký tự 3.3 Các kiểu liệu có cấu trúc - Mảng - Cấu trúc (struct) 3.4 Kiểu liệu trỏ T * Pt; 3.5 Kiểu liệu tập ... Giáo trình: Cấu Trúc DữLiệu Giải Thuật IV HƯỚNG DẪN SỬ DỤNG TÀI LIỆU THAM KHẢO Cấu trúc liệu Tác giả: Nguyễn Trung Trực Khoa CNTT, trường ĐHBK TP.HCM Giáo trình Cấu trúc liệu Tác giả: Trần Hạnh...
... Trang: 188 Giáo trình: Cấu Trúc DữLiệu Giải Thuật b Cấu trúc liệu cân bằng: Để ghi nhận mức độ cân nút gốc sử dụng thêm thành phần Bal cấu trúc liệu nút Do vậy, cấu trúc liệu nhò phân tìm kiếm cân ... Giáo trình: Cấu Trúc DữLiệu Giải Thuật B10.3: if (MLNode->BST_Left = NULL) Thực B10.7 B10.4: PrMLNode = MLNode B10.5: MLNode = MLNode->BST_Left B10.6: Lặp lại B10.3 // Chép liệu từ MLNode DelNode ... bày hai thao tác mà Trang: 189 Giáo trình: Cấu Trúc DữLiệu Giải Thuật a Thêm nút vào cân bằng: Giả sử cần thêm nút NewNode có thành phần liệu NewData vào cân BALTree cho sau thêm BALTree cân...
... CurNode->BST_Right B5: Lặp lại B2 Trang: 164 Giáo trình: Cấu Trúc DữLiệu Giải Thuật Bkt: Kết thúc - Minh họa thuật toán: Giả sử cần tìm kiếm nút có thành phần liệu 30 nhò phân tìm kiếm sau: SearchData = 30 CurNode ... ⇒ Thuật toán kết thúc (Tìm thấy) Trang: 166 Giáo trình: Cấu Trúc DữLiệu Giải Thuật Bây giả sử cần tìm kiếm nút có thành phần liệu 35 nhò phân tìm kiếm trên: SearchData = 35 CurNode BSTree 60 ... NewData bò trùng Trang: 169 Giáo trình: Cấu Trúc DữLiệu Giải Thuật với Key nút nhò phân tìm kiếm không thực thao tác thêm Tuy nhiên, sử dụng cấu trúc liệu mở rộng việc trùng khóa giải đơn giản không...
... Hãy đưa cấu trúc liệu để quản lý loại danh sách vừa kể trên? Mỗi loại bạn chọn cấu trúc liệu mà theo bạn hay nhất? Giải thích lựa chọn đó? Trang: 147 Giáo trình: Cấu Trúc DữLiệu Giải Thuật Trình ... lưu trữ phần liệu cho ngăn xếp cho giá trò thành phần SP giá trò Size+1 - Thuật toán: B1: CS_List.Size = MaxSize B2: CS_List.List = new T[MaxSize] Trang: 143 Giáo trình: Cấu Trúc DữLiệu Giải Thuật ... Trúc DữLiệu Giải Thuật return (SList.SP); } c Lấy nội dung phần tử ngăn xếp để xử lý (Pop): Ở luôn lấy nội dung phần tử bề mặt ngăn xếp, vò trí SP (nếu ngăn xếp không rỗng) Giả sử ta cần lấy liệu...
... Minh họa thuật toán: Giả sử cần thêm nút có thành phần liệu 25 vào sau nút có đòa InsNode sau: NewData = 25 Trang: 117 Giáo trình: Cấu Trúc DữLiệu Giải Thuật DLL_List DLL_First DLL_Last InsNode ... trò thành phần liệu nút B4: CurNode = CurNode->NextNode B5: Lặp lại B2 Bkt: Kết thúc - Cài đặt thuật toán: Hàm DLL_Travelling có prototype: Trang: 120 Giáo trình: Cấu Trúc DữLiệu Giải Thuật ... Trang: 121 Giáo trình: Cấu Trúc DữLiệu Giải Thuật return (CurNode); } f Loại bỏ bớt phần tử khỏi danh sách: Giả sử cần loại bỏ phần tử có giá trò thành phần liệu DelData danh sách liên kết đôi,...
... Giả sử cần tạo nút có thành phần liệu 20: NewData = 20 Pnode = new SLL_OneNode Pnode Pnode->NextNode = NULL Pnode->Key = NewData Trang: 94 Giáo trình: Cấu Trúc DữLiệu Giải Thuật Pnode 20 NULL c ... IF (CurNode = NULL) Thực Bkt Trang: 98 Giáo trình: Cấu Trúc DữLiệu Giải Thuật B3: OutputData(CurNode->Key) // Xuất giá trò thành phần liệu nút B4: CurNode = CurNode->NextNode B5: Lặp lại B2 Bkt: ... phần liệu SearchData danh sách liên kết đơn quản lý đòa nút thông qua SList Hàm trả đòa nút danh sách tìm thấy, ngược lại hàm trả trỏ NULL Nội dung hàm sau: Trang: 99 Giáo trình: Cấu Trúc Dữ Liệu...
... fopen(DataTemp1, “r”) //Mở tập tin trung gian thứ để đọc liệu Ft2 = fopen(DataTemp2, “r”) //Mở tập tin trung gian thứ hai để đọc liệu Fd = fopen(DataFile, “w”) //Mở tập tin liệu để ghi liệu fread(&a1, sizeof(T), ... tập tin liệu lớn Vả lại biến động liệu tập tin liệu liên tục mà chủ yếu truy xuất liệu thường xuyên Do vậy, việc đọc – ghi nhiều lên tập tin liệu làm cho thời gian truy xuất tập tin liệu nhiều ... ý: Trang: 81 Giáo trình: Cấu Trúc DữLiệu Giải Thuật Hàm Output thực việc xuất thông tin phần tử liệu thiết bò xuất thông tin Ngoài ra, muốn xử lý liệu phần tử liệu theo thứ tự điều khiển tập tin...
... “r”) //Mở tập tin liệu cần xếp để đọc liệu Ft1 = fopen(DataTemp1, “w”) //Mở tập tin trung gian thứ để ghi liệu Ft2 = fopen(DataTemp2, “w”) //Mở tập tin trung gian thứ hai để ghi liệu IF (feof(Fd)) ... fopen(DataTemp1, “r”) //Mở tập tin trung gian thứ để đọc liệu Ft2 = fopen(DataTemp2, “r”) //Mở tập tin trung gian thứ hai để đọc liệu Fd = fopen(DataFile, “w”) //Mở tập tin liệu để ghi liệu fread(&a1, sizeof(T), ... phối đường chạy tập tin liệu tập tin trung gian sau lại trộn tương ứng cặp đường chạy tập tin trung gian thành đường chạy có chiều dài lớn Trang: 60 Giáo trình: Cấu Trúc DữLiệu Giải Thuật Các thuật...
... Giáo trình: Cấu Trúc DữLiệu Giải Thuật Hàm QuickSort có prototype sau: void QuickSort(T M[], int N); Hàm thực việc xếp N phần tử có kiểu liệu T mảng M theo thứ tự tăng dựa thuật ... SelectionSort có prototype sau: Trang: 30 Giáo trình: Cấu Trúc DữLiệu Giải Thuật void SelectionSort(T M[], int N); Hàm thực việc xếp N phần tử có kiểu liệu T mảng M theo thứ tự tăng dựa thuật toán xếp chọn ... InsertionSort1 có prototype sau: Trang: 37 Giáo trình: Cấu Trúc DữLiệu Giải Thuật void InsertionSort1(T M[], int N); Hàm thực việc xếp N phần tử có kiểu liệu T mảng M theo thứ tự tăng dựa thuật toán xếp chèn...
... Trình bày tầmquantrọng Cấu trúc liệu Giải thuật người lập trình? Các tiêu chuẩn để đánh giá cấu trúc liệu giải thuật? Khi xây dựng giải thuật có cần thiết phải quantâm tới cấu trúc liệu hay ... gian thực trung bình thuật toán: Tavg 1.3 Kiểu liệu 1.3.1 Khái niệm kiểu liệu Kiểu liệu T xem kết hợp thành phần: - Miền giá trò mà kiểu liệu T lưu trữ: V, - Tập hợp phép toán để thao tác liệu: O ... (Info) liên quan đến phần tử liệu Như phần tử liệu có cấu trúc liệu sau: typedef struct DataElement { T Key; InfoType Info; } DataType; Trong tài liệu này, nói tới giá trò phần tử liệu muốn nói...
... Giáo trình: Cấu Trúc DữLiệu Giải Thuật ÔN TẬP (REVIEW) Hệ thống lại Cấu trúc liệu Giải thuật học Chương 1: Tổng quan Cấu Trúc DữLiệu Giải Thuật Tầmquantrọng Cấu trúc liệu Giải thuật đề án ... toán Kiểu liệu 3.1 Khái niệm Kiểu liệu T = {V, O} 3.2 Các kiểu liệu sở - Nguyên - Thực - Ký tự 3.3 Các kiểu liệu có cấu trúc - Mảng - Cấu trúc (struct) 3.4 Kiểu liệu trỏ T * Pt; 3.5 Kiểu liệu tập ... Giáo trình: Cấu Trúc DữLiệu Giải Thuật IV HƯỚNG DẪN SỬ DỤNG TÀI LIỆU THAM KHẢO Cấu trúc liệu Tác giả: Nguyễn Trung Trực Khoa CNTT, trường ĐHBK TP.HCM Giáo trình Cấu trúc liệu Tác giả: Trần Hạnh...
... Trang: 188 Giáo trình: Cấu Trúc DữLiệu Giải Thuật b Cấu trúc liệu cân bằng: Để ghi nhận mức độ cân nút gốc sử dụng thêm thành phần Bal cấu trúc liệu nút Do vậy, cấu trúc liệu nhò phân tìm kiếm cân ... Giáo trình: Cấu Trúc DữLiệu Giải Thuật B10.3: if (MLNode->BST_Left = NULL) Thực B10.7 B10.4: PrMLNode = MLNode B10.5: MLNode = MLNode->BST_Left B10.6: Lặp lại B10.3 // Chép liệu từ MLNode DelNode ... bày hai thao tác mà Trang: 189 Giáo trình: Cấu Trúc DữLiệu Giải Thuật a Thêm nút vào cân bằng: Giả sử cần thêm nút NewNode có thành phần liệu NewData vào cân BALTree cho sau thêm BALTree cân...
... CurNode->BST_Right B5: Lặp lại B2 Trang: 164 Giáo trình: Cấu Trúc DữLiệu Giải Thuật Bkt: Kết thúc - Minh họa thuật toán: Giả sử cần tìm kiếm nút có thành phần liệu 30 nhò phân tìm kiếm sau: SearchData = 30 CurNode ... ⇒ Thuật toán kết thúc (Tìm thấy) Trang: 166 Giáo trình: Cấu Trúc DữLiệu Giải Thuật Bây giả sử cần tìm kiếm nút có thành phần liệu 35 nhò phân tìm kiếm trên: SearchData = 35 CurNode BSTree 60 ... NewData bò trùng Trang: 169 Giáo trình: Cấu Trúc DữLiệu Giải Thuật với Key nút nhò phân tìm kiếm không thực thao tác thêm Tuy nhiên, sử dụng cấu trúc liệu mở rộng việc trùng khóa giải đơn giản không...
... Hãy đưa cấu trúc liệu để quản lý loại danh sách vừa kể trên? Mỗi loại bạn chọn cấu trúc liệu mà theo bạn hay nhất? Giải thích lựa chọn đó? Trang: 147 Giáo trình: Cấu Trúc DữLiệu Giải Thuật Trình ... lưu trữ phần liệu cho ngăn xếp cho giá trò thành phần SP giá trò Size+1 - Thuật toán: B1: CS_List.Size = MaxSize B2: CS_List.List = new T[MaxSize] Trang: 143 Giáo trình: Cấu Trúc DữLiệu Giải Thuật ... Trúc DữLiệu Giải Thuật return (SList.SP); } c Lấy nội dung phần tử ngăn xếp để xử lý (Pop): Ở luôn lấy nội dung phần tử bề mặt ngăn xếp, vò trí SP (nếu ngăn xếp không rỗng) Giả sử ta cần lấy liệu...
... Giả sử cần tạo nút có thành phần liệu 20: NewData = 20 Pnode = new SLL_OneNode Pnode Pnode->NextNode = NULL Pnode->Key = NewData Trang: 94 Giáo trình: Cấu Trúc DữLiệu Giải Thuật Pnode 20 NULL c ... IF (CurNode = NULL) Thực Bkt Trang: 98 Giáo trình: Cấu Trúc DữLiệu Giải Thuật B3: OutputData(CurNode->Key) // Xuất giá trò thành phần liệu nút B4: CurNode = CurNode->NextNode B5: Lặp lại B2 Bkt: ... phần liệu SearchData danh sách liên kết đơn quản lý đòa nút thông qua SList Hàm trả đòa nút danh sách tìm thấy, ngược lại hàm trả trỏ NULL Nội dung hàm sau: Trang: 99 Giáo trình: Cấu Trúc Dữ Liệu...
... fopen(DataTemp1, “r”) //Mở tập tin trung gian thứ để đọc liệu Ft2 = fopen(DataTemp2, “r”) //Mở tập tin trung gian thứ hai để đọc liệu Fd = fopen(DataFile, “w”) //Mở tập tin liệu để ghi liệu fread(&a1, sizeof(T), ... tập tin liệu lớn Vả lại biến động liệu tập tin liệu liên tục mà chủ yếu truy xuất liệu thường xuyên Do vậy, việc đọc – ghi nhiều lên tập tin liệu làm cho thời gian truy xuất tập tin liệu nhiều ... ý: Trang: 81 Giáo trình: Cấu Trúc DữLiệu Giải Thuật Hàm Output thực việc xuất thông tin phần tử liệu thiết bò xuất thông tin Ngoài ra, muốn xử lý liệu phần tử liệu theo thứ tự điều khiển tập tin...
... “r”) //Mở tập tin liệu cần xếp để đọc liệu Ft1 = fopen(DataTemp1, “w”) //Mở tập tin trung gian thứ để ghi liệu Ft2 = fopen(DataTemp2, “w”) //Mở tập tin trung gian thứ hai để ghi liệu IF (feof(Fd)) ... fopen(DataTemp1, “r”) //Mở tập tin trung gian thứ để đọc liệu Ft2 = fopen(DataTemp2, “r”) //Mở tập tin trung gian thứ hai để đọc liệu Fd = fopen(DataFile, “w”) //Mở tập tin liệu để ghi liệu fread(&a1, sizeof(T), ... phối đường chạy tập tin liệu tập tin trung gian sau lại trộn tương ứng cặp đường chạy tập tin trung gian thành đường chạy có chiều dài lớn Trang: 60 Giáo trình: Cấu Trúc DữLiệu Giải Thuật Các thuật...
... Giáo trình: Cấu Trúc DữLiệu Giải Thuật Hàm QuickSort có prototype sau: void QuickSort(T M[], int N); Hàm thực việc xếp N phần tử có kiểu liệu T mảng M theo thứ tự tăng dựa thuật ... SelectionSort có prototype sau: Trang: 30 Giáo trình: Cấu Trúc DữLiệu Giải Thuật void SelectionSort(T M[], int N); Hàm thực việc xếp N phần tử có kiểu liệu T mảng M theo thứ tự tăng dựa thuật toán xếp chọn ... InsertionSort1 có prototype sau: Trang: 37 Giáo trình: Cấu Trúc DữLiệu Giải Thuật void InsertionSort1(T M[], int N); Hàm thực việc xếp N phần tử có kiểu liệu T mảng M theo thứ tự tăng dựa thuật toán xếp chèn...