CTDL_03_CTDuLieuDong

13
Cấu trúc dữ liệu 1 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 1 Click To Edit Master Title Style NỘI DUNG CẤU TRÚC DỮ LIỆU ĐỘNG

description

Cấu trúc dữ liệu động

Transcript of CTDL_03_CTDuLieuDong

Dãy – Danh sáchCU TRÚC D LIU VÀ GII THUT 1
*
NI DUNG
1
CU TRÚC D LIU VÀ GII THUT 1
*
Bin Tnh
Tn ti trong phm vi khai báo
c cp phát trong stack
Kích thc không i => không tn dng hiu qu b nh
Ví d : int x,y;
float f[5];
Khi bit chc nhu cu s dng i tng trc khi thc s x lý : dùng bin không ng
1
CU TRÚC D LIU VÀ GII THUT 1
*
Ví D Hn Ch Ca Bin Tinh
T chc danh sách lp hc
Dùng mng tnh :
1
CU TRÚC D LIU VÀ GII THUT 1
*
Bin ng
Không c khai báo tng minh, không có tên gi
Xin khi cn, gii phóng khi s dng xong
c cp phát trong heap
Linh ng v kích thc
Vn : bin ng không có tên gi tng minh, làm sao thao tác ?
1
1
CU TRÚC D LIU VÀ GII THUT 1
*
Kiu con tr
Kiu con tr dùng lu a ch ca mt i tng d liu khác.
Bin thuc kiu con tr Tp là bin mà giá tr ca nó là a ch cu mt vùng nh ng vi mt bin kiu T, hoc là giá tr NULL.
Khai báo trong C :
Bn thân bin con tr là không ng
Dùng bin con tr lu gi i ch ca bin ng => truy xut bin ng thông qua bin con tr
1
CU TRÚC D LIU VÀ GII THUT 1
*
Các thao tác trên kiu con tr
To ra mt bin ng và cho con tr ‘p’ ch n nó:
void* malloc(size);
void* calloc(n,size);
new // hàm cp phát b nh trong C++
Hy mt bin ng do p ch n :
Hàm free(p) hu vùng nh cp phát bi hàm malloc hoc calloc do p tr ti
Hàm delete p hu vùng nh cp phát bi hàm new do p tr ti
1
CU TRÚC D LIU VÀ GII THUT 1
*
S dng bin tinh, con tr và bin ng
0xFF
5
1
CU TRÚC D LIU VÀ GII THUT 1
*
Kiu danh sách
Danh sách là mt kiu d liu tuyn tính :
Mi phn t có nhiu nht 1 phn t ng trc
Mi phn t có nhiu nht 1 phn t ng sau
Là kiu d liu quen thuc trong thc t :
Danh sách hc sinh
Danh b in thoi

CU TRÚC D LIU VÀ GII THUT 1
*
Các hình thc t chc danh sách
CTDL cho mi phn t ?
Th hin liên kt ca các phn t ?
Hai hình thc c bn :
Liên kt ngm : Mng
1
CU TRÚC D LIU VÀ GII THUT 1
*
Danh sách liên kt ngm(mng)
Mi liên h gia các phn t c th hin ngm:
xi : phn t th i trong danh sách
xi , xi+1 là k cn trong danh sách
Phi lu tr liên tip các phn t trong b nh
công thc xác nh a ch phn t th i:
address(i) = address(1) + (i-1)*sizeof(T)
Nhc im:
Kích thc c nh
Các thao tác thêm vào , loi b không hiu qu
x0
CU TRÚC D LIU VÀ GII THUT 1
*
Liên kt tung minh(Danh sánh liên kt)
CTDL cho mt phn t
Thông tin bn thân
Mi phn t là mt bin ng
u im
+ Linh ng v s lng phn t
x0
x1
x2
x3
1
CU TRÚC D LIU VÀ GII THUT 1
*
Click To Edit Master Title Style
Các loi danh sách liên kt
Danh sách liên kt n: Mi phn t liên kt vi phn t ng sau nó trong danh sách
Danh sách liên kt kép: Mi phn t liên kt vi phn t ng trc và sau nó trong danh sách
Danh sách liên Vòng: Phn t cui danh sách liên vi phn t u danh sách
A
B
C
D
A
B
C
D
1
CU TRÚC D LIU VÀ GII THUT 1
*
Các loi danh sách liên kt (tt)
Danh sách liên Vòng: Phn t cui danh sách liên vi phn t u danh sách
Danh sách liên kt n vòng
A
B
C
D
A
B
C
D
1