Giáo trình cấu trúc dữ liệu và giải thuật

7 18 0
Giáo trình cấu trúc dữ liệu và giải thuật

Đang tải... (xem toàn văn)

Thông tin tài liệu

Thoâng tin giaûi nghóa veà moät töø bao goàm: Teân töø, Loaïi töø (Danh töø, ñoäng töø, tính töø, …) , nghóa tieáng Vieät. a) Söû duïng taäp tin chæ muïc ñeå lieät keâ caùc töø theo[r]

(1)

………… o0o…………

KHOA: CÔNG NGH THƠNG TIN

(2)

MỤC LỤC

Muïc Trang

CHƯƠNG 1: TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU & GT

1.1 Tầm quan trọng CTDL & GT đề án tin học

1.1.1 Xây dựng cấu trúc liệu

1.1.2 Xây dựng giải thuật

1.1.3 Mối quan hệ cấu trúc liệu giải thuật

1.2 Đánh giá Cấu trúc liệu & Giải thuật

1.2.1 Các tiêu chuẩn đánh giá cấu trúc liệu

1.2.2 Đánh giá độ phức tạp thuật toán

1.3 Kiểu liệu

1.3.1 Khái niệm kiểu liệu

1.3.2 Các kiểu liệu sở

1.3.3 Các kiểu liệu có cấu trúc

1.3.4 Kiểu liệu trỏ

1.3.5 Kiểu liệu tập tin

Câu hỏi tập

CHƯƠNG 2: KỸ THUẬT TÌM KIẾM (Searching)

2.1 Khái quát tìm kiếm

2.2 Các giải thuật tìm kiếm nội

2.2.1 Đặt vấn đề

2.2.2 Tìm tuyến tính

2.2.3 Tìm nhị phân 10

2.3 Các giải thuật tìm kiếm ngoại 14

2.3.1 Đặt vấn đề 14

2.3.2 Tìm tuyến tính 14

2.3.3 Tìm kiếm theo mục 16

Câu hỏi tập 17

CHƯƠNG 3: KỸ THUẬT SẮP XẾP (SORTING) 19

3.1 Khái quát xếp 19

3.2 Các giải thuật xếp nội 19

3.2.1 Sắp xếp phương pháp đổi chỗ 20

3.2.2 Sắp xếp phương pháp chọn 28

3.2.3 Sắp xếp phương pháp chèn 33

3.2.4 Sắp xếp phương pháp trộn 40

3.3 Các giải thuật xếp ngoại 60

3.3.1 Sắp xếp phương pháp trộn 60

3.3.2 Sắp xếp theo mục 79

(3)

Giáo trình: Cấu Trúc Dữ Liệu Giải Thuật

Trang:

CHƯƠNG 4: DANH SÁCH (LIST) 84

4.1 Khái niệm danh sách 84

4.2 Các phép toán danh sách 84

4.3 Danh sách đặc 85

4.3.1 Định nghóa 85

4.3.2 Biểu diễn danh sách đặc 85

4.3.3 Các thao tác danh sách đặc 85

4.3.4 Ưu nhược điểm Ứng dụng 91

4.4 Danh sách liên kết 92

4.4.1 Định nghóa 92

4.4.2 Danh sách liên kết đơn 92

4.4.3 Danh sách liên kết kép 111

4.4.4 Ưu nhược điểm danh sách liên kết 135

4.5 Danh saùch hạn chế 135

4.5.1 Hàng đợi 135

4.5.2 Ngăn xếp 142

4.5.3 Ứng dụng danh sách hạn chế 147

Câu hỏi tập 147

CHƯƠNG 5: CÂY (TREE) 149

5.1 Khái niệm – Biểu diễn 149

5.1.1 Định nghóa 149

5.1.2 Một số khái niệm liên quan 149

5.1.3 Biểu diễn 151

5.2 Cây nhị phân 152

5.2.1 Định nghóa 152

5.2.2 Biểu diễn Các thao tác 152

5.2.3 Cây nhị phân tìm kiếm 163

5.3 Cây cân 188

5.3.1 Định nghĩa – Cấu trúc liệu 188

5.3.2 Các thao tác 189

Câu hỏi tập 227

ÔN TẬP (REVIEW) 224

Hệ thống lại Cấu trúc liệu Giải thuật học 224

Câu hỏi Bài tập ôn tập tổng hợp 227

TÀI LIỆU THAM KHẢO 229

(4)

Giáo trình: Cấu Trúc Dữ Liệu Giải Thuật

Chương 1: TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VAØ GIẢI THUẬT 1.1 Tầm quan trọ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

Có thể nói khơng có chương trình máy tính mà khơng có liệu để xử lý Dữ liệu liệu đưa vào (input data), liệu trung 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 quan trọng tồn hệ thống chương trình Việc xây dựng cấu trúc liệu định lớn đến chất lượng cơng sức người lập trình việc thiết kế, cài đặt chương trình

1.1.2 Xây dựng giải thuật

Khái niệm giải thuật hay thuật giải mà nhiều cịn gọi thuật tốn dùng để phương pháp hay cách thức (method) để giải vần đề Giải thuật minh họa ngôn ngữ tự nhiên (natural language), sơ đồ (flow chart) mã giả (pseudo code) Trong thực tế, giải thuật thường minh họa hay thể mã giả tựa hay số ngơn ngữ lập trình (thường ngơn ngữ mà người lập trình chọn để cài đặt thuật tốn), chẳng hạn C, Pascal, …

Khi xác định cấu trúc liệu thích hợp, người lập trình bắt đầu tiến hành xây dựng thuật giải tương ứng theo yêu cầu toán đặt sở cấu trúc liệu chọn Để giải vấn đề có nhiều phương pháp, lựa chọn phương pháp phù hợp việc mà người lập trình phải cân nhắc tính tốn Sự lựa chọn góp phần đáng kể việc giảm bớt cơng việc người lập trình phần cài đặt thuật tốn ngơn 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ải thuật thực việc thể chương trình ngơn ngữ cụ thể vấn đề thời gian Khi có cấu trúc liệu mà chưa tìm thuật giải khơng thể có chương trình ngược lại khơng thể có Thuật giải chưa có cấu trúc liệu Một chương trình máy tính hồn thiện có đầy đủ Cấu trúc liệu để lưu trữ liệu Giải thuật xử lý liệu theo yêu cầu toán đặt

1.2 Đánh giá cấu trúc liệu giải thuật

1.2.1 Các tiêu chuẩn đánh giá cấu trúc liệu

(5)

Giáo trình: Cấu Trúc Dữ Liệu Giải Thuật

Trang:

- Cấu trúc liệu phải phản ảnh thực tế toán, - Cấu trúc liệu phải dễ dàng việc thao tác liệu

1.2.2 Đánh giá độ phức tạp thuật toán

Việc đánh giá độ phức tạp thuật tốn khơng dễ dàng chút Ở dây, muốn ước lượng thời gian thực thuận tốn T(n) để có so sánh tương đối thuật toán với Trong thực tế, thời gian thực thuật tốn cịn phụ thuộc nhiều vào điều kiện khác cấu tạo máy tính, liệu đưa vào, …, xem xét mức độ lượng liệu đưa vào ban đầu cho thuật toán thực

Để ước lượng thời gian thực thuật tốn xem xét thời gian thực thuật toán hai trường hợp:

- Trong trường hợp tốt nhất: Tmin - Trong trường hợp xấu nhất: Tmax

Từ ước lượng thời gian thực trung bình thuật tố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 T = <V, O>

Mỗi kiểu liệu thường đại diện tên (định danh) Mỗi phần tử liệu có kiểu T có giá trị miền V thực phép toán thuộc tập hợp phép toán O

Để lưu trữ phần tử liệu thường phải tốn số byte(s) nhớ, số byte(s) gọi kích thước kiểu liệu

1.3.2 Các kiểu liệu sở

Hầu hết ngôn ngữ lập trình có cung cấp kiểu liệu sở Tùy vào ngôn ngữ mà kiểu liệu sở có tên gọi khác song lại có loại kiểu liệu sở sau:

- Kiểu số nguyên: Có thể có dấu khơng có dấu thường có kích thước sau: + Kiểu số ngun byte

+ Kiểu số nguyên bytes + Kiểu số nguyên bytes

(6)

Giáo trình: Cấu Trúc Dữ Liệu Giải Thuật

10 Hãy sử dụng cấu trúc liệu thích hợp để lưu trữ từ từ điển vào tập tin có tên DICT.DAT Thơng tin giải nghĩa từ bao gồm: Tên từ, Loại từ (Danh từ, động từ, tính từ, …), nghĩa tiếng Việt

a) Sử dụng tập tin mục để liệt kê từ theo thứ tự Alphabet (A -> Z)

b) Hãy đề xuất cấu trúc liệu thích hợp để lưu trữ nhớ máy tính thơng tin giải nghĩa từ tập tin DICT.DAT (có thể nhớ khơng đủ để lưu tồn nội dung tập tin DICT.DAT vào nhớ máy tính) Với cấu trúc liệu này, trình bày thuật tốn cài đặt chương trình thực việc tra nghĩa cho từ Ngoài ra, ta sử dụng phím PgUp/PgDn để lật lên/xuống theo trang (do quy định) hình sử dụng phím Up-arrow/Down-arrow trơi lên/xuống từ hình? Sử dụng cấu trúc liệu thích hợp để lưu trữ nhớ từ tra nghĩa

11.Người ta lưu trữ hệ số đa thức bậc n thành dòng văn file DATHUC.DAT theo nguyên tắc: Mỗi dòng hệ số số mũ đa thức hệ số số mũ cách khoảng trắng

Hãy sử dụng cấu trúc liệu thích hợp để lưu trữ đa thức vào nhớ máy tính Với cấu trúc liệu này, trình bày thuật tốn cài đặt chương trình thực công việc sau:

- Xuất đa thức file DATHUC.DAT hình; - Tính đa thức tổng, đa thức hiệu đa thức này; - Tính đa thức tích đa thức

12 Một hình vng có độ dài cạnh a tô 02 màu: trắng đen Người ta tiến hành chia hình vng thành 04 hình vng ghi nhận vị trí chúng hình vng lớn Nếu hình vng gồm tồn màu trắng màu đen giữ ngun, cịn hình vng cịn có 02 màu tiếp tục chia hình vng thành 04 hình vng nhỏ ghi nhận vị trí, …, sau số hữu hạn phép chia kết thúc việc chia Hãy sử dụng cấu trúc liệu thích hợp để lưu trữ hình vng vào nhớ máy tính Với cấu trúc liệu lựa chọn, trình bày thuật tốn cài đặt chương trình thực cơng việc sau:

- Tính tổng số hình vuông tạo thành qua lần chia

- Tính tổng số hình vng màu trắng, màu đen tổng diện tích tương ứng chúng

- Tái tạo lại hình vng ban đầu

13 Định nghĩa cấu trúc liệu thích hợp để lưu trữ giá trị tam giác Pascal vào nhớ máy tính Với cấu trúc liệu trình bày thuật tốn viết chương trình thực cơng việc sau:

- In tam giác Pascal có N dòng hình

- In tính giá trị biểu thức (a+b)N hình

(7)

Giáo trình: Cấu Trúc Dữ Liệu Giải Thuật

Trang: 229

IV HƯỚNG DẪN SỬ DỤNG TAØI LIỆU THAM KHẢO

1 Cấu trúc liệu

Tác giả: Nguyễn Trung Trực

Khoa CNTT, trường ĐHBK TP.HCM

2 Giáo trình Cấu trúc liệu

Tác giả: Trần Hạnh Nhi – Dương Anh Đức Khoa CNTT, trường ĐHKHTN – ĐHQG TP.HCM

3 Algorithms + Data Structures = Programs

Taùc giaû: N.Wirth

NXB: Prentice Hall, 1976

4 Data Structures and Algorithms

Tác giả: Alfred V.Aho - John E.Hopcroft – Jeffrey D.Ullman NXB: Addison-Wesley Publishing Company

5 Algorithms (Second Edition)

Tác giả: Robert Sedgewick

NXB: Addison-Wesley Publishing Company

6 Data Structures and Program Design (Third Edition)

Ngày đăng: 09/03/2021, 03:44

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan