Bài giảng Cấu trúc dữ liệu & thuật toán: Chương 3 - Nguyễn Đức Nghĩa
Số trang:
Loại file: pdf
Dung lượng: 34.37 MB
Lượt xem: 20
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Cấu trúc dữ liệu & thuật toán - Chương 3: Các cấu trúc dữ liệu cơ bản (Basic data structures) giới thiệu về các khái niệm, mảng, danh sách, ngăn xếp và hàng đợi. Bài giảng do Nguyễn Đức Nghĩa thực hiện. Mời bạn đọc cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu & thuật toán: Chương 3 - Nguyễn Đức Nghĩa Chương 3 CÁC CẤU TRÚC DỮ LIỆU CƠ BẢN (Basic Data Structures) Structures) CTDL&TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội Nội dung 3.1. Các khái niệm 3.2. Mảng 3.3. Danh sách 3.4. Ngăn xếp 3.5. Hàng đợi CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội Chap02-2 Chương 3. Các cấu trúc dữ liệu cơ bản 3.1. Các khái niệm 3.2. Mảng 3.3. Danh sách 3.4. Ngăn xếp 3.5. Hàng đợi CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội Chap02-3 Kiểu dữ liệu (Data types) • Kiểu dữ liệu (data type) được đặc trưng bởi: 。tập các giá trị (a set of values) 。cách biểu diễn dữ liệu (data representation) được sử dụng chung cho tất cả các giá trị này và 。tập các phép toán (set of operations) có thể thực hiện trên tất cả các giá trị CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội 4 Các kiểu dữ liệu dựng sẵn (Built--in data types) (Built • Trong các ngôn ngữ lập trình thường có một số kiểu dữ liệu nguyên thuỷ đã được xây dựng sẵn. Ví dụ 。Kiểu số nguyên (Integer numeric types) • byte, char, short, int, long 。Kiểu số thực dấu phảy động (floating point numeric types) • float, double 。Các kiểu nguyên thuỷ khác (Other primitive types) • boolean 。Kiểu mảng (Array type) • mảng các phần tử cùng kiểu CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội BGA Dữ liệu đối với kiểu nguyên thuỷ Trong ngôn ngữ lập trình C Type Bits Minimum value Maximum value byte 8 -128 127 short 16 -32768 32767 char 16 0 65535 int 32 -2147483648 = -231 2147483647 = 231-1 long 64 -9223372036854775808 9223372036854775807 float 32 1.40 10 45 3.40 1038 double 64 4.94 10324 1.80 10308 Có thể có kiểu boolean với hai giá trị true hoặc false 6 Phép toán đối với kiểu dữ liệu nguyên thuỷ • Đối với kiểu: byte, char, short, int, long 。+, - , *, /, %, đổi thành xâu, ... • Đối với kiểu: float, double 。+, -, *, /, round, ceil, floor, ... • Đối với kiểu: boolean 。kiểm giá trị true, hay kiểm giá trị false • Nhận thấy rằng: Các ngôn ngữ lập trình khác nhau có thể sử dụng mô tả kiểu dữ liệu khác nhau. Chẳng hạn, PASCAL và C có những mô tả các dữ liệu số khác nhau. CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội BGA Kiểu dữ liệu trừu tường (Abstract Data Types) • Kiểu dữ liệu trừu tượng (Abstract Data Type -ADT) bao gồm: 。tập các giá trị (set of values) và 。tập các phép toán (set of operations) có thể thực hiện với tất cả các giá trị này • Phần nào của kiểu dữ liệu (Data Type) đã bị bỏ qua trong ADT ? 。cách biểu diễn dữ liệu (data representation) được sử dụng chung cho tất cả các giá trị này • Việc làm này có ý nghĩa làm trừu tượng hoá khái niệm kiểu dữ liệu. ADT không còn phụ thuộc vào cài đặt, không phụ thuộc ngôn ngữ lập trình. CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội 8 Kiểu dữ liệu trừu tượng (Abstract Data Type - ADT) • Ví dụ: ADT Đối tượng Phép toán (Object) (Operations) Danh sách (List) các nút chèn, xoá, tìm,... Đồ thị (Graphs) đỉnh, cạnh duyệt, đường đi, ... Integer -∞...,-1, 0, 1,... +∞ +, -, *, v.v... Real -∞, ...., +∞ +, -, *, v.v... Ngăn xếp các phần tử pop, push, isEmpty,... Hàng đợi Các phần tử enqueue, dequeue,... Cây nhị phân các nút traversal, find,... CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội Chap02-9 Kiểu dữ liệu trừu tượng (Abstract Data Type - ADT) • Điều dễ hiểu là các kiểu dữ liệu nguyên thuỷ mà các ngôn ngữ lập trình cài đặt sẵn cũng được coi là thuộc vào kiểu dữ liệu trừu tượng. Trên thực tế chúng là cài đặt của kiểu dữ liệu trừu tượng trên ngôn ngữ lập trình cụ thể. • Định nghĩa. Ta gọi việc cài đặt (implementation) một ADT là việc diễn tả bởi các câu lệnh của một ngôn ngữ lập trình để mô tả các biến trong ADT và các thủ tục trong ngôn ngữ lập trình để thực hiện các phép toán của ADT, hoặc trong các ngôn ngữ hướng đối tượng, là các lớp (class) bao gồm cả dữ liệu (data) và các phương thức xử lý (methods). CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội Chap02-10 Kiểu dữ liệu - Kiểu dữ liệu trừu tượng và Cấu trúc dữ liệu (Data Types, Data Structures and Abstract Data Types) • Có thể nói những thuật ngữ: kiểu dữ liệu, kiểu dữ liệu trừu tượng và cấ ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu & thuật toán: Chương 3 - Nguyễn Đức Nghĩa Chương 3 CÁC CẤU TRÚC DỮ LIỆU CƠ BẢN (Basic Data Structures) Structures) CTDL&TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội Nội dung 3.1. Các khái niệm 3.2. Mảng 3.3. Danh sách 3.4. Ngăn xếp 3.5. Hàng đợi CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội Chap02-2 Chương 3. Các cấu trúc dữ liệu cơ bản 3.1. Các khái niệm 3.2. Mảng 3.3. Danh sách 3.4. Ngăn xếp 3.5. Hàng đợi CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội Chap02-3 Kiểu dữ liệu (Data types) • Kiểu dữ liệu (data type) được đặc trưng bởi: 。tập các giá trị (a set of values) 。cách biểu diễn dữ liệu (data representation) được sử dụng chung cho tất cả các giá trị này và 。tập các phép toán (set of operations) có thể thực hiện trên tất cả các giá trị CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội 4 Các kiểu dữ liệu dựng sẵn (Built--in data types) (Built • Trong các ngôn ngữ lập trình thường có một số kiểu dữ liệu nguyên thuỷ đã được xây dựng sẵn. Ví dụ 。Kiểu số nguyên (Integer numeric types) • byte, char, short, int, long 。Kiểu số thực dấu phảy động (floating point numeric types) • float, double 。Các kiểu nguyên thuỷ khác (Other primitive types) • boolean 。Kiểu mảng (Array type) • mảng các phần tử cùng kiểu CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội BGA Dữ liệu đối với kiểu nguyên thuỷ Trong ngôn ngữ lập trình C Type Bits Minimum value Maximum value byte 8 -128 127 short 16 -32768 32767 char 16 0 65535 int 32 -2147483648 = -231 2147483647 = 231-1 long 64 -9223372036854775808 9223372036854775807 float 32 1.40 10 45 3.40 1038 double 64 4.94 10324 1.80 10308 Có thể có kiểu boolean với hai giá trị true hoặc false 6 Phép toán đối với kiểu dữ liệu nguyên thuỷ • Đối với kiểu: byte, char, short, int, long 。+, - , *, /, %, đổi thành xâu, ... • Đối với kiểu: float, double 。+, -, *, /, round, ceil, floor, ... • Đối với kiểu: boolean 。kiểm giá trị true, hay kiểm giá trị false • Nhận thấy rằng: Các ngôn ngữ lập trình khác nhau có thể sử dụng mô tả kiểu dữ liệu khác nhau. Chẳng hạn, PASCAL và C có những mô tả các dữ liệu số khác nhau. CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội BGA Kiểu dữ liệu trừu tường (Abstract Data Types) • Kiểu dữ liệu trừu tượng (Abstract Data Type -ADT) bao gồm: 。tập các giá trị (set of values) và 。tập các phép toán (set of operations) có thể thực hiện với tất cả các giá trị này • Phần nào của kiểu dữ liệu (Data Type) đã bị bỏ qua trong ADT ? 。cách biểu diễn dữ liệu (data representation) được sử dụng chung cho tất cả các giá trị này • Việc làm này có ý nghĩa làm trừu tượng hoá khái niệm kiểu dữ liệu. ADT không còn phụ thuộc vào cài đặt, không phụ thuộc ngôn ngữ lập trình. CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội 8 Kiểu dữ liệu trừu tượng (Abstract Data Type - ADT) • Ví dụ: ADT Đối tượng Phép toán (Object) (Operations) Danh sách (List) các nút chèn, xoá, tìm,... Đồ thị (Graphs) đỉnh, cạnh duyệt, đường đi, ... Integer -∞...,-1, 0, 1,... +∞ +, -, *, v.v... Real -∞, ...., +∞ +, -, *, v.v... Ngăn xếp các phần tử pop, push, isEmpty,... Hàng đợi Các phần tử enqueue, dequeue,... Cây nhị phân các nút traversal, find,... CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội Chap02-9 Kiểu dữ liệu trừu tượng (Abstract Data Type - ADT) • Điều dễ hiểu là các kiểu dữ liệu nguyên thuỷ mà các ngôn ngữ lập trình cài đặt sẵn cũng được coi là thuộc vào kiểu dữ liệu trừu tượng. Trên thực tế chúng là cài đặt của kiểu dữ liệu trừu tượng trên ngôn ngữ lập trình cụ thể. • Định nghĩa. Ta gọi việc cài đặt (implementation) một ADT là việc diễn tả bởi các câu lệnh của một ngôn ngữ lập trình để mô tả các biến trong ADT và các thủ tục trong ngôn ngữ lập trình để thực hiện các phép toán của ADT, hoặc trong các ngôn ngữ hướng đối tượng, là các lớp (class) bao gồm cả dữ liệu (data) và các phương thức xử lý (methods). CTDL & TT – NGUYỄN ĐỨC NGHĨA – Bộ môn KHMT – ĐHBK Hà nội Chap02-10 Kiểu dữ liệu - Kiểu dữ liệu trừu tượng và Cấu trúc dữ liệu (Data Types, Data Structures and Abstract Data Types) • Có thể nói những thuật ngữ: kiểu dữ liệu, kiểu dữ liệu trừu tượng và cấ ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Cấu trúc dữ liệu thuật toán Cấu trúc dữ liệu thuật toán Cấu trúc dữ liệu Giải thuật toán Thuật toán đồ thị Cấu trúc dữ liệu cơ bảnGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 302 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 148 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 139 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 137 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 137 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 101 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 71 0 0 -
49 trang 67 0 0
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Ngô Công Thắng
8 trang 64 0 0 -
54 trang 58 0 0