thực tế, cần tìm ra các giải thuật tương ứng để xác định trình tự các thao tác máy tính phải thi hành để cho ra kết quả mong muốn. đây là bước xây dựng giải thuật cho bài toán..[r]
(1)(2)NỘI DUNG MÔN HỌC
Chương 1: TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU &
GIẢI THUẬT
Chương 2: KỸ THUẬT TÌM KIẾM (SEARCHING) Chương 3: KỸ THUẬT SẮP XẾP (SORTING)
Chương 4: DANH SÁCH (LIST) Chương 5: CÂY (TREE)
(3)TÀI LIỆU HỌC TẬP
[1] Giáo trình & Bài Giảng Cấu trúc liệu & Giải
thuật – Trường CDCN4
(4)TÀI LIỆU THAM KHẢO
[1] Cấu trúc liệu, Nguyễn Trung Trực, Trường
DHBK – DHQG TP.HCM
[2] Giáo trình Cấu trúc liệu 1, Trần Hạnh Nhi –
Dương Anh Đức, Trường DHKHTN – DHQG TP.HCM
[3] Algorithms + Data Structures = Programs, N.Wirth,
Prentice Hall, 1976
[4] Data Structures and Algorithms, Alfred V.Aho -
John E.Hopcroft – Jeffrey D.Ullman, Addison-Wesley Publishing Company
[5] Algorithms (Second Edition), Robert Sedgewick,
(5)Môn: CẤU TRÚC DỮ LIỆU
Chương 1: TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
(6)NỘI DUNG CHƯƠNG 1
1.1 Tầm quan trọng cấu trúc liệu đề án tin học
1.2 Các tiêu chuẩn đánh giá cấu trúc liệu 1.3 Các kiểu liệu
Khái niệm kiểu liệu Các kiểu liệu sở
Các kiểu liệu có cấu trúc Kiểu liệu trỏ
Kiểu tập tin
(7)1.1 Tầm quan trọng CTDL & 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 dữ liệu các yêu
cầu xử lý liệu để 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ế: Mơ hình tin
học toán, cần phải tổ chức cho vừa phản ánh xác liệu thực tế, vừa dễ dàng dùng máy tính để xử lý
xây dựng cấu trúc liệu.
Xây dựng thao tác xử lý liệu : Từ yêu cầu
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
(8)1.1 Tầm quan trọng CTDL & giải thuật
* Mối quan hệ cấu trúc liệu giải thuật
Cấu trúc liệu + Giải thuật = Chương trình
Khi có cấu trúc liệu tốt giải thuật phù hợp
xây dựng chương trình phụ thuộc thời gian
Một chương trình máy tính hồn thiện có đầy
(9)1.2 Các tiêu chuẩn đánh giá CTDL
Một cấu trúc liệu tốt phải thỏa mãn:
Phản ánh thực tế: Cần xem xét kỹ lưỡng
như dự trù trạng thái biến đổi liệu chu trình sống để chọn CTDL lưu trữ thể xác đối tượng thực tế
Phù hợp với thao tác đó: Tăng tính hiệu
quả đề án, việc phát triển thuật toán đơn giản, tự nhiên => chương trình đạt hiệu cao tốc độ xử lý
Tiết kiệm tài nguyên hệ thống: CTDL nên sử
(10)1.2 Các tiêu chuẩn đánh giá CTDL (tt)
Đánh giá độ phức tạp thuật tốn
Là cơng việc ước lượng thời gian thực thuật
toán để so sánh tương đối thuật toán với
Trong thực tế, thời gian thực phụ thuộc cấu
hình máy, liệu đưa vào, …
Để ước lượng thời gian thực thuật toán xem xét
2 trường hợp
Trường hợp tốt nhất: T
min
Trường hợp xấu nhất: T
max
Với T
(11)1.3 Các kiểu liệu
Máy tính lưu trữ liệu dạng nhị phân Nếu muốn phản ánh liệu đa dạng, cần
phải xây dựng phép ánh xạ, qui tắc tổ chức phức tạp che lên tầng liệu nhị phân thô sơ
Nhằm đưa khái niệm logic hình thức lưu
trữ khác đựoc gọi kiêu liệu
Các kiểu liệu sở
Các kiểu liệu có cấu trúc Kiểu liệu trỏ
(12)1.3 Các kiểu liệu (tt)
Định nghĩa kiểu liệu
Kiểu liệu T được xác định <V,O>, với:
V: tập giá trị hợp lệ mà đối tượng kiểu T có
thể lưu trữ
O: Tập thao tác xử lý thi hành đối
tượng kiểu T
Ví dụ : Giả sử có kiểu liệu mẫu tự=<Vc,Oc> với :
Vc={a-z,A-Z}
Oc={Lấy mã ASCII ký tự, đổi ký tự thành ký tự hoa}
(13)1.3 Các kiểu liệu (tt)
Các thuộc tính kiểu liệu
Tên kiểu liệu
Miền giá trị liệu Kích thước liệu
(14)1.3 Các kiểu liệu (tt)
Các kiểu liệu sở
Kiểu số nguyên Kiểu số thực
(15)1.3 Các kiểu liệu (tt)
Các kiểu liệu có cấu trúc
Kiểu chuỗi ký tự: kiểu liệu có cấu trúc đơn giản thường ngơn ngữ lập trình dịnh nghĩa kiểu
Trong C hàm xử lý chuỗi đặt thư viện string.lib
VD: char S[10] ;// chuỗi ký tự S có chiều dài tối đa 10 (kể ký tự kết thúc)
(16)1.3 Các kiểu liệu (tt)
Các kiểu liệu có cấu trúc (tt)
Kiểu mảng: kiểu liệu phần tử tập hợp có thứ tự giá trị có cấu trúc lưu trữ liên tiếp nhớ
Mảng chiều :
<Kiểu liệu> <Tên biến> [<Số phần tử>];
Mảng nhiều chiều :
(17)1.3 Các kiểu liệu (tt)
Các kiểu liệu có cấu trúc (tt)
Kiểu mẫu tin: Kiểu mẫu tin tương tự mảng phần tử tập hợp giá trị khác cấu trúc
Kiểu mẫu tin thường dùng để mô tả đối tượng có cấu trúc phức tạp
Ví dụ : struct PERSON
{
char Hoten[]; int NamSinh; char NoiSinh[];
(18)1.3 Các kiểu liệu (tt)
Kiểu liệu trỏ
Cho trước kiểu T = <V,O> Kiểu trỏ ký hiệu Tp đến phần tử có kiểu T định nghĩa sau: Tp = <Vp, Op> Trong đó:
Tp = {{các địa lưu trữ đối tượng kiểu T}, NULL}
Op = {các thao tác định địa đối tượng kiểu T biết trỏ đến đối tượng đó}
Kiểu trỏ kiểu liệu sở dùng lưu địa đối tượng liệu khác
(19)1.3 Các kiểu liệu (tt) Kiểu liệu trỏ (tt)
Kích thước biến trỏ tùy thuộc vào quy ước số byte
từng mơ hình nhớ ngơn ngữ lập trình cụ thể
Biến trỏ C++ có kích thước bytes tùy vào
con trỏ NEAR hay FAR
Cú pháp định nghĩa liệu kiểu trỏ
typedef <kiểu sở> * <kiểu trỏ>;
Các thao tác kiểu trỏ:
Khi biến trỏ ‘p’ lưu trữ địa đối tượng x ta nói “p
trỏ đến x”
Gán địa vùng nhớ trỏ p:
p = <địa chỉ>;
(20)1.3 Các kiểu liệu (tt)
Kiểu liệu tập tin
Tập tin kiểu liệu đặc biệt, kích thước tối đa
tập tin phụ thuộc không gian đĩa
Việc đọc, ghi liệu tập tin thời gian,
khơng an tồn liệu
Thơng thường chuyển liệu tập tin (một phần
(21)Bài tập
Xem lại việc sử dụng trỏ C++ Xem lại thao tác với tập tin