Bài giảng Kỹ thuật lập trình - Chương 7.1: Cấu trúc dữ liệu. Chương này cung cấp cho học viên những nội dung về: dữ liệu, kiểu dữ liệu và cấu trúc dữ liệu; các kiểu dữ liệu; mảng; danh sách; ngăn xếp; hàng đợi; cây;... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
CẤU TRÚC DỮ LIỆU Dữ liệu, kiểu liệu & cấu trúc liệu Machine Level Data Storage Primitive Data Types 0100110001101001010001 3.1415 28 array Basic Data Structures High-Level Data Structures 'A' stack queue hash table list tree Các kiểu liệu Kiểu liệu (primitive data type) ▪Đại diện cho liệu giống nhau, phân chia nhỏ ▪Thường ngôn ngữ lập trình định nghĩa sẵn ▪Ví dụ ▫C/C++: int, long, char, bool ▫Thao tác số nguyên: + - * / Kiểu liệu có cấu trúc (structured data type) ▪Được xây dựng từ kiểu liệu (cơ bản, có cấu trúc) khác ▪Có thể ngơn ngữ lập trình định nghĩa sẵn lập trình viên tự định nghĩa Nội dung Mảng Danh sách Ngăn xếp Hàng đợi Cây Mảng Array Mảng Array ▪ Dãy hữu hạn phần tử liên tiếp có kiểu tên ▪ Một hay nhiều chiều ▫ C không giới hạn số chiều mảng Cú pháp DataType ArrayName[size]; mảng nhiều chiều DataType ArrayName[size 1][size 2] [size n]; Khởi tạo giá trị mảng ▪ C1 Khi khai báo float y[5] = { 3.2, 1.2, 4.5, 6.0, 3.6 } int m[6][2] = { { 1, }, { 1, }, { 2, }, { 2, }, { 3, }, { 3, } }; char s1[6] = { 'H', 'a', 'n', 'o', 'i', '\0' }; //hoặc char s1[6] = "Hanoi"; char s1[] = "Dai hoc Bach Khoa Hanoi"; //L = 24 int m[][] = { { 1, 2, }, { 4, 5, } }; ▪ C2 Khai báo gán giá trị cho phần tử mảng int m[4]; m[0] = 1; m[1] = 2; m[2] = 3; m[3] = 4; Danh sách List Danh sách List ▪ Danh sách ▫ Tập hợp phần tử kiểu ▫ Số lượng phần tử danh sách không cố định ▪ Phân loại ▫ Danh sách tuyến tính: ▸ Có phần tử đầu tiên, phần tử cuối ▸ Thứ tự trước / sau phần tử xác định rõ ràng, ví dụ theo thứ tự tăng dần, giảm dần hay thứ tự bảng chữ ▸ Các thao tác danh sách phải không làm ảnh hưởng đến trật tự ▫ Danh sách phi tuyến tính: phần tử danh sách không thứ tự Danh sách List ▪ Lưu trữ ▫ Sử dụng vùng ô nhớ liên tiếp nhớ danh sách ▫ Sử dụng vùng ô nhớ khơng liên tiếp nhớ danh sách móc nối ▸ Danh sách nối đơn ▸ Danh sách nối kép ... số nguyên: + - * / Kiểu liệu có cấu trúc (structured data type) ▪Được xây dựng từ kiểu liệu (cơ bản, có cấu trúc) khác ▪Có thể ngơn ngữ lập trình định nghĩa sẵn lập trình viên tự định nghĩa... kiểu liệu Kiểu liệu (primitive data type) ? ?Đại diện cho liệu giống nhau, phân chia nhỏ ▪Thường ngơn ngữ lập trình định nghĩa sẵn ▪Ví dụ ▫C/C++: int, long, char, bool ▫Thao tác số nguyên: + - *.. .Dữ liệu, kiểu liệu & cấu trúc liệu Machine Level Data Storage Primitive Data Types 0100110001101001010001 3.1415 28 array Basic Data Structures High-Level Data Structures