Tải bản đầy đủ (.pdf) (7 trang)

Khái quát về cấu trúc dữ liệu phần 1 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (199.46 KB, 7 trang )

2
© 2004, HOÀNG MINH SƠN
Chương 4: Khái quát về cấutrúcdữ liệu
Nộidung chương 4
4.1 Cấutrúcdữ liệulàgì?
4.2 Mảng và quảnlýbộ nhớ₫ộng
4.2 Xây dựng cấu trúc Vector
4.3 Xây dựng cấutrúcList
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.


d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e

w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m

TÌM HIỂU CÁC DỮ LIỆU PHỨC HỘP TRONG LẬP TRÌNH
NỘI DUNG BÀI HỌC:
3
© 2004, HOÀNG MINH SƠN
Chương 4: Khái quát về cấutrúcdữ liệu
4.1 Giớithiệuchung
 Phầnlớn các bài toán trong thựctế liên quan tớicác
dữ liệuphứchợp, những kiểudữ liệucơ bảntrong

ngôn ngữ lập trình không ₫ủ biểudiễn
 Ví dụ:
—Dữ liệu sinh viên: Họ tên, ngày sinh, quê quán, mã số SV,
—Môhìnhhàmtruyền: Đathứctử số, ₫athứcmẫusố
—Môhìnhtrạng thái: Các ma trận A, B, C, D
—Dữ liệuquátrình: Tên₫ạilượng, dải ₫o, giá trị, ₫ơnvị, thời
gian, cấpsaisố, ngưỡng giá trị,
— Đốitượng ₫ồ họa: Kích thước, màu sắc, ₫ường nét, phông
chữ,
 Phương pháp biểudiễndữ liệu: ₫ịnh nghĩakiểudữ
liệumớisử dụng cấu trúc (struct, class, union, )
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r

w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e


V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
4
© 2004, HOÀNG MINH SƠN
Chương 4: Khái quát về cấutrúcdữ liệu
Vấn ₫ề: Biểudiễntậphợpdữ liệu
 Đasố những dữ liệuthuộcmột ứng dụng có liên quan

với nhau => cầnbiểudiễntrongmộttậphợpcócấu
trúc, ví dụ:
— Danhsáchsinhviên: Cácdữ liệu sinh viên ₫ượcsắpxếptheo
thứ tự Alphabet
—Mộ hình tổng thể cho hệ thống ₫iều khiển: Bao gồm nhiều
thành phầntương tác
—Dữ liệuquátrình: Mộttậpdữ liệucóthể mang giá trị của
một ₫ạilượng vào các thời ₫iểmgián₫oạn, các dữ liệu ₫ầu
vào liên quan tớidữ liệu ₫ầura
— Đốitượng ₫ồ họ
a: Mộtcửasổ bao gồm nhiều ₫ốitượng ₫ồ
họa, mộtbảnvẽ cũng bao gồm nhiều ₫ốitượng ₫ồ họa
 Thông thường, các dữ liệutrongmộttậphợpcócùng
kiểu, hoặcítralàtương thích kiểuvớinhau
 Kiểumảng không phải bao giờ cũng phù hợp!
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i

e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h

a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
5

© 2004, HOÀNG MINH SƠN
Chương 4: Khái quát về cấutrúcdữ liệu
Vấn ₫ề: Quảnlý(tậphợp) dữ liệu
 Sử dụng kếthợpmộtcáchkhéoléokiểucấutrúcvà
kiểumảng ₫ủ ₫ể biểudiễncáctậphợpdữ liệubấtkỳ
 Các giảithuật (hàm) thao tác vớidữ liệu, nhằmquản
lý dữ liệumộtcáchhiệuquả:
—Bổ sung mộtmụcdữ liệumớivàomột danh sách, mộtbảng,
mộttậphợp,
—Xóamộtmụcdữ liệutrongmột danh sách, bảng, tậphợp,
—Tìmmộtmụcdữ liệutrongmột danh sách, bảng tậphợp,
theo mộttiêuchuẩncụ thể
—Sắpxếpmột danh sách theo mộttiêuchuẩnnào₫ó

Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e

w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a

n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
6
© 2004, HOÀNG MINH SƠN

Chương 4: Khái quát về cấutrúcdữ liệu
QuảnlýDL thế nàolàhiệuquả?
 Tiếtkiệmbộ nhớ: Phần "overhead" không ₫áng kể so
vớiphầndữ liệuthực
 Truy nhập nhanh, thuậntiện: Thờigiancầnchobổ
sung, tìm kiếm và xóa bỏ các mụcdữ liệuphảingắn
 Linh hoạt: Số lượng các mụcdữ liệu không (hoặcít)
bị hạnchế cố₫ịnh, không cầnbiếttrướckhitạocấu
trúc, phù hợpvớicả bài toán nhỏ và lớn
 Hiệuquả quảnlýdữ liệuphụ thuộcvào
—Cấutrúcdữ liệu ₫ượcsử dụng
—Giảithuật ₫ượcápdụng cho bổ sung, tìm kiếm, sắpxếp, xóa
bỏ
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w

e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n

g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
7
© 2004, HOÀNG MINH SƠN
Chương 4: Khái quát về cấutrúcdữ liệu

Các cấutrúcdữ liệu thông dụng
 Mảng (nghĩarộng): Tậphợpcácdữ liệucóthể truy
nhậptùyý theochỉ số
 Danh sách (list): Tậphợpcácdữ liệu ₫ược móc nối ₫ôi
mộtvớinhauvàcóthể truy nhậptuầntự
 Cây (tree): Tậphợpcácdữ liệu ₫ược móc nốivới nhau
theo cấutrúccây, cóthể truy nhậptuầntự từ gốc
—Nếumỗi nút có tối ₫a hai nhánh: cây nhị phân (binary tree)
 Bìa, bảng (map): Tậphợpcácdữ liệucósắpxếp, có
thể truy nhậprất nhanh theo mã khóa (key)
 Hàng ₫ợi (queue): Tậphợpcácdữ liệucósắpxếp
tuầntự, chỉ bổ sung vào từ một ₫ầuvàlấyratừ₫ầu
còn lại
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w

e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n

g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
8
© 2004, HOÀNG MINH SƠN
Chương 4: Khái quát về cấutrúcdữ liệu

Các cấutrúcdữ liệu thông dụng (tiếp)
 Tậphợp(set): Tậphợpcácdữ liệu ₫ượcsắpxếptùyý
nhưng có thể truy nhậpmộtcáchhiệuquả
 Ngănxếp (stack): Tậphợpcácdữ liệu ₫ượcsắpxếp
tuầntự, chỉ truy nhập ₫ượctừ một ₫ầu
 Bảng hash (hash table): Tậphợpcácdữ liệu ₫ượcsắp
xếpdựatheomộtmãsố nguyên tạoratừ mộthàm
₫ặ
cbiệt
 Bộ nhớ vòng (ring buffer): Tương tự như hàng ₫ợi,
nhưng dung lượng có hạn, nếuhếtchỗ sẽ₫ượcghi
quay vòng
 Trong toán họcvàtrong₫iềukhiển: vector, ma trận,
₫athức, phân thức, hàm truyền,
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e

w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a

n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m

×