11/03/2010 Cấu Trúc Dữ Liệu Data Structures Phan Mạnh Thường Thông tin về môn học • Số tiết lý thuyết : 45 • Số tiết thực hành : 30 Thời lượng Thời lượng • Nắm vững ngôn ngữ C • Các khái
Trang 111/03/2010
Cấu Trúc Dữ Liệu (Data Structures)
Phan Mạnh Thường
Thông tin về môn học
• Số tiết lý thuyết : 45
• Số tiết thực hành : 30
Thời lượng
Thời lượng
• Nắm vững ngôn ngữ C
• Các khái niệm lập trình cơ bản
Điều kiện
Điều kiện
Cung cấp các kiến thức cơ bản về
• Các cấu trúc lưu trữ dữ liệu
• Các thuật toán xử lý
Mục tiêu
Mục tiêu
Thông tin về môn học
1 Trần Hạnh Nhi và Dương Anh Đức, Giáo Trình Cấu Trúc Dữ Liệu, CĐ Công
Nghệ Thông Tin TP HCM, 2003.
2 Chủ biên: Hoàng Kiếm, Giáo trình cấu trúc dữ liệu, ĐH KHTN, 1996.
3 Niclaus Wirth, bản dịch Algorithms+Data structures, NXB Thống Kê, 1981.
4 Đỗ Xuân Lôi, Cấu trúc dữ liệu và giải thuật, NXB Khoa học Kỹ Thuật, 1996.
5 Nguyễn Quốc Cường và Hoàng Đức Hải, Cấu trúc dữ liệu + Giải Thuật =
Chương Trình, NXB Giáo Dục, 1995.
6 Đinh Mạnh Tường, Cấu trúc dữ liệu và giải thuật, NXB Giáo dục, 1998
7 Nguyễn Trung Trực, Cấu trúc dữ liệu, ĐH Kỹ thuật, 1995
Tài liệu tham khảo
Tài liệu tham khảo
Nội dung môn học
Chương 1: Giới thiệu tổng quan
Chương 2: Các cấu trúc dữ li u cơ bả
2
Chương 3: Cấu trúc lưu trữ ngoài
3
Chương 04: Cấu trúc dữ li u động
4
Chương 05: Bảng băm
5
Chương 06: Cấu trúc cây
5
Trang 23/11/2010 www.lhu.edu.vn
Thông tin về môn học
Gồm 3 cột điểm:
• Điểm chuyên cần (10%): điểm danh buổi học
• Điểm kiểm tra (30%): bài tập, seminar
• Điểm thi (60%): làm bài thi giấy
Đánh giá
Chương 1
Trừu tượng hóa dữ liệu
4
Vai trò của CTDL
1
Tiêu chuẩn đánh giá
2
Một vòng bộ nhớ
3
Nội dung Nội dung
Chương 1 Giới thiệu tổng quan
Khi giải quyết một bài toán thực tế bằng máy
tính cần quan tâm đến:
Tổ chức lưu trữ dữ liệu (CTDL)
Phương pháp xử lý dữ liệu (Thuật toán)
Vai trò của CTDL
Niclaus Wirth
CTDL + Thuật toán = Chương trình
Chương 1 Giới thiệu tổng quan
Một CTDL được đánh giá theo các tiêu chuẩn:
Phản ánh đúng dữ liệu thực tế
Phù hợp với các thao tác xử lý trên đó
Tiết kiệm tài nguyên hệ thống
Vai trò của CTDL
Trang 33/11/2010 www.lhu.edu.vn
Chương 1 Giới thiệu tổng quan
Một vòng quanh bộ nhớ
Mọi dữ liệu trên máy tính đều ở dạng nhị phân
Bộ nhớ là nơi lưu trữ dữ liệu và các lệnh xử lý, bộ nhớ gồm:
Cache memory
Persistent storage Tốc độ truy xuất: Cache>>RAM>> Persistent storage
Chương 1 Giới thiệu tổng quan
Đơn vị lưu trữ trong bộ nhớ là Byte
Bộ nhớ chính gồm nhiều byte (ô nhớ), mỗi ô được đánh địa chỉ gọi là địa chỉ bộ nhớ (Memory Address)
Một vòng quanh bộ nhớ
Kiểu số nguyên 2 bytes (int)
Chương 1 Giới thiệu tổng quan
Dữ liệu trong thực tế rất đa dạng
Trừu tượng hóa dữ liệu giúp ánh xạ một nhóm
byte thành một kiểu dữ liệu (Data Type)
Kiểu dữ liệu T được xác định bởi một bộ <V,O>
trong đó :
V (Values): tập các giá trị hợp lệ mà một đối tượng
kiểu T có thể lưu trữ
O (Operations): tập các thao tác xử lý có thể thi hành
trên đối tượng kiểu T
Trừu tượng hóa dữ li u
Chương 1 Giới thiệu tổng quan
Ví du:
Giả sử có kiểu dữ liệu mẫu tự = <Vc,Oc> với
Vc = { a-z,A-Z}
Oc = { lấy mã ASCII của ký tự, biến đổi ký tự thường thành ký tự hoa…}
Giả sử có kiểu dữ liệu số nguyên = <Vi,Oi> với
Vi = { -32768 32767}
Oi = { +, -, *, /, %}
Trừu tượng hóa dữ li u
Trang 43/11/2010 www.lhu.edu.vn
Chương 1 Giới thiệu tổng quan
Các thuộc tính của 1 kiểu dữ liệu bao gồm:
Tên kiểu dữ liệu
Miền giá trị
Kích thước lưu trữ
Tập các toán tử tác động lên kiểu dữ liệu
Trừu tượng hóa dữ li u
Chương 1 Giới thiệu tổng quan
Thông thường, các kiểu dữ liệu cơ bản bao gồm :
Kiểu có thứ tự rời rạc: số nguyên, ký tự, logic, liệt kê, miền con …
Kiểu không rời rạc: số thực
Trừu tượng hóa dữ li u
Chương 1 Giới thiệu tổng quan
Trừu tượng hóa dữ li u
Tên kiểu Kthước Miền giá trị Ghi chú
Char 01 byte -128 đến 127 Có thể dùng như số nguyên 1 byte
có dấu hoặc kiểu ký tự Unsign char 01 byte 0 đến 255 Số nguyên 1 byte không dấu
Int 02 byte -32738 đến 32767 Số nguyên 2 byte
Unsign int 02 byte 0 đến 65535 Có thể gọi tắt là unsign
Long 04 byte -2 32 đến 2 31 -1
Unsign long 04 byte 0 đến 2 32 -1
Float 04 byte 3.4E-38 3.4E38
Giới hạn chỉ trị tuyệt đối.Các giá trị
<3.4E-38 được coi = 0 Tuy nhiên kiểu float chỉ có 7 chữ số có nghĩa.
Double 08 byte 1.7E-308 1.7E308
Long double 10 byte 3.4E-4932 1.1E4932
Các kiểu dữ liệu cơ bản trong ngôn ngữ C