Kiều dữ liệu danh sách
lượt xem 10
download
Tài liệu tham khảo về kiều dữ liệu danh sách - môn Khoa học máy tính
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Kiều dữ liệu danh sách
- Ki u d li u danh sách Lê S Vinh B môn Khoa H c Máy Tính – Khoa CNTT ð i H c Công Ngh - ðHQGHN Email: vinhioi@yahoo.com
- Danh sách Danh sách là gì? Danh sách là c u trúc d li u tuy n tính, trong ñó các ph n t d li u ñư c s p x p theo m t th t xác ñ nh Ví d : – Danh sách sinh viên – Danh sách ñi n tho i – Danh sách môn h c – Danh sách bài hát – Danh sách công vi c
- Danh sách Tr u tư ng hóa c u trúc danh sách 1. Mô t d li u A = (a0, a1, …, an) trong ñó ai là ph n t th i c a danh sách A Ví d : A = (1, 2, 3, 3, 4, 5) A = (‘Vinh’, ‘Tu n’,. ‘Ánh’) 2. Mô t các phép toán trên c u trúc danh sách • empty (A): Ki m tra danh sách có r ng hay không • length (A): Cho bi t s ph n t c a danh sách • element (A, i) : Tr ph n t v trí th i c a A. Ví d : A =(1,3,5) Element (A, 0) → 1 Element (A, 2) → 5
- Danh sách • insert (A, i, x): Thêm ph n t x vào danh sách A t i v trí i. A = (a0, a1,…, an) → A = (a0,a1,…,ai-1, x, ai,…an) Ví d : A = (1,3,5) insert (A, 1, 4) → A = (1, 4, 3, 5) • append (A, x): Thêm x vào ñuôi danh sách A A = (a0, a1,…, an) → A = (a0,a1,…,an , x) Ví d : A = (1,3,5) append (A, 8) → A = (1, 3, 5, 8) • delete (A, i): Lo i ph n t v trí th i trong danh sách A A = (a0, a1,…ai-1, ai, ai+1, an) → A = (a0,a1,…,ai-1, ai+1,…an) Ví d : A = (1,3,5) delete (A, 1) → A = (1, 5)
- Cài ñ t danh sách b ng m ng M ng (array) • T p h p các ph n t (các bi n) có cùng m t ki u • M t ph n t c th trong m ng s ñư c xác ñ nh và truy c p b i m t ch s • Trong C/C++, các ph n t c a m ng ñư c ñ t c nh nhau t o thành m t kh i liên t c. ð a ch th p nh t tương ng v i ph n t ñ u tiên, ñ a ch cao nh t tương ng v i ph n t cu i cùng • M ng thì có th là m t chi u ho c nhi u chi u
- Cài ñ t danh sách b ng m ng a0 a1 . . . an ↑ ↑ ↑ ↑ 0 1 . . . N Max- 1 M ng m t chi u: dataType arrayName [Max]; Ví d : int scoreArr[100]; student studentArr[100];
- Danh sách Tóm t t v tr u tư ng hóa c u trúc danh sách • Mô t d li u • A = (a0, a1, …, an) • Mô t các phép toán trên c u trúc danh sách • empty (A): Ki m tra danh sách có r ng hay không • length (A): Cho bi t s ph n t c a danh sách • element (A, i) : Tr ph n t v trí th i c a A. • insert (A, i, x): Thêm ph n t x vào danh sách A t i v trí i. • append (A, x): Thêm x vào ñuôi danh sách A • delete (A, i): Lo i ph n t v trí th i trong danh sách A Các phép toán trên c u trúc danh sách không ph thu c vào ki u d li u c a các ph n t trong danh sách!!!
- Cài ñ t danh sách trong C++ Template 1. Generic function 2. Generic class ListArr project List.h List.cpp
- Các phép toán khác trên danh sách • Tìm ph n t l n nh t • ð i ch hai ph n t • S p x p tăng d n
- Con tr (pointer) • Là ñi m m nh nh t, nhưng cũng nguy hi m nh t c a C/ C++ • Ch a ñ a ch c a m t t bào nh trong máy tính 1 2 3 3 1 4 6 5 Giá tr trong ô nh ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ð a ch ô nh 10 11 12 13 14 15 16 17
- Con tr (pointer) Khai báo con tr type * pointerVariable ví d : int *p C p phát b nh (allocate memory) pointerVariable = new type (initializer) Ví d : p = new int (-1) Gi i phóng b nh delete pointerVariable; ví d : delete p (xem ví d chương trình)
- Con tr (pointer) C p phát b nh cho m t ñ i tư ng d li u pointerVariable = new objectDataType (xem ví d chương trình)
- Con tr (pointer) C p phát m ng ñ ng pointerVariable = new arrayType[size] ví d : int* p; p = new int[10] Gi i phóng m ng ñ ng delete [] pointerVariable ví d : delete [] p; (xem ví d chương trình)
- Danh sách liên k t M ng -1 1 3 2 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 11 12 13 14 15 16 17 18 19 20 21 22 int listArr[4] = {-1, 1, 3, 2} Danh sách -1 1 3 2 liên k t ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 11 12 13 14 15 16 17 18 19 20 21 22 (-1, 15) → (1, 16) → (3, 21) → (2, NULL) ↑ ↑ head tail
- Cài ñ t danh sách liên k t Xem chương trình
- Các phép toán khác trên danh sách liên k t • Tìm ph n t l n nh t • ð i ch hai ph n t • S p x p tăng d n
- M ng và danh sách liên k t • Truy c p ph n t • Thêm ph n t • Xóa ph n t
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Cấu trúc dữ liệu và giải thuật_ Bài tập lớn
7 p | 1553 | 316
-
Báo cáo: Danh sách liên kết kép
20 p | 315 | 84
-
Bài giảng lập trình DOT NET - Bài 7 Cấu trúc dữ liệu trong C#
17 p | 182 | 42
-
Danh sách địa chỉ trong Exchange 2007
11 p | 147 | 27
-
Cấu trúc dữ liệu và giải thuật - Chương 4
13 p | 179 | 13
-
Bài giảng Cấu trúc dữ liệu - PGS. TS Trần Cao Đệ
10 p | 168 | 9
-
CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - HÀNG ĐỢI
19 p | 122 | 9
-
CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - NGĂN XẾP
13 p | 88 | 7
-
Bài giảng Cấu trúc dữ liệu 1: Chương 4 - Lương Trần Hy Hiến
17 p | 94 | 5
-
Bài giảng Cấu trúc dữ liệu và giải thuật 1: Chương 3
13 p | 40 | 5
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 3 - Trường ĐH Công nghệ Thông tin
14 p | 22 | 4
-
Đề 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) bậc đại học
10 p | 56 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 9: Cấu trúc dữ liệu hàng đợi
12 p | 52 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Bài 4 - Hoàng Thị Điệp (2014)
11 p | 61 | 4
-
Bài giảng Kỹ thuật lập trình: Dữ liệu có cấu trúc - GV. Hà Đại Dương
12 p | 67 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2.2 - TS. Nguyễn Thị Kim Thoa
13 p | 19 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: ADT và Véc-tơ - Nguyễn Mạnh Hiển
17 p | 72 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn