Cu trúc dliu và Gii thut
Đỗ Bích Dip- Khoa CNTT- ĐHBKHN 1
CutrúcdliuvàGiithut
Chương III: Mng Danh sách
Mng Danh sách
Ni dung
CutrúcdliuMng
zLưutrMng 1 chiu
zLưutrMng 2 chiu
zCác phép toán trên cutrúcMng
Danh sách tuyếntính
zLưutrkếtiếp
zLưutrmóc ni
Cu trúc dliu và Gii thut
Đỗ Bích Dip- Khoa CNTT- ĐHBKHN 2
Kiudliutrutượng Mng
zĐốitượng caMng:
Mttpcáccp (index, item)
Vimigiátrca index s mtgiátrtương ng
caitem.
Index là mttpcótht mtchiuhoc nhiu
chiu
zIndex 1 chiu : {0, 1, 2, …, n-1}
zIndex 2 chiu : {(0,0) , (0,1), (0,2), …,(0,n), (1,0), (1,1) ….}
Kiudliutrutượng Mng
zCác phép toán
Create(j, list) : tomng j chiu, list là mtj-bvi
phntthk ca list là kích thướcchiuthk ca
mng.
Retrieve(A,i) : Trra giá trcaphntnhnchsi
nếucó
Store(A,i,x) : Trra mtmng ging nhưmng A đã
cho ban đầu, chkhác mtcp(i,x) đãđượcb
sung vào vtrí đúng
Cu trúc dliu và Gii thut
Đỗ Bích Dip- Khoa CNTT- ĐHBKHN 3
CutrúcdliuMng
zMng dãy các phntửđưcđánh chs
zKhi cài đặt trong máy tính, mng đượclưutr
trong mt dãy các ô nhliên tiếp trong bnh
zKích thướccamng đượcxácđịnh khi khito
không thay đổi
zMiphnttrong mng mtchsxác định
zTruy xutvàocácphntcamng sdng ch
scaphnt
Mng trong các ngôn nglptrình
Tpchscamng thkhác nhau
zC, Java : chs snguyên, liên tc, btđầut0
zPascal : chs th giá trrirc
zPerl: cho phép chskhông philàs
Mng th thunnhthoc không thunnht
Mng th thêm các thông tin bsung ngoài các
phnt
Cu trúc dliu và Gii thut
Đỗ Bích Dip- Khoa CNTT- ĐHBKHN 4
Mng 1 chiu
Khito
zCnchra sphntcamng
zKhai báo mng trong C:
<kiudliucaphnt><tên biến>[size]
int list[5];
char word[25];
Tham chiếu
zCác phnttrong mng 1 chiuđược tham chiếuđếns
dng địachỉđưctính
int list [5] Ælist[0] đachcơs= α
list[1] α+ sizeof(int)
list[2] α+ 2*sizeof(int)
list[3] α+ 3*sizeof(int)
list[4] α+ 4*sizeof(int)
Mng 1 chiu
Address Value
1228 0
1230 1
1232 2
1234 3
1236 4
int list[] = {0, 1, 2, 3, 4};
int *ptr; int rows = 5;
int i; ptr = list;
printf(“Address Value\n”);
for (i=0; i < rows; i++)
printf(“%8u%5d\n”, ptr+i, *(ptr+i));
printf(“\n”);
Cu trúc dliu và Gii thut
Đỗ Bích Dip- Khoa CNTT- ĐHBKHN 5
Mng 2 chiu
Khai báo
zCnchra shàng, sct
zTrong C : <kiuphnt> <tên biến> [size1] [size2]
int table[4][5];
zTruy xutmtphnt
table[i][j]
Lưutrmng 2 chiu trong bnhmáy tính
zTheo thtựưu tiên hàng
zTheo thtựưutiênct
Mng 2 chiu
Lưutrmng 2 chiu theo thtựưutiênhàng
a32
a31
a30
a22
a21
a20
a12
a11
a10
a02
a01
a00
a32
a31
a30
a22
a21
a20
a12
a11
a10
a02
a01
a00
Tmng 2 chiulưutr
sang bnhkếtiếpsdng
thtựưu tiên hàng