Professional Documents
Culture Documents
Chapter2 1-2 4 BasicDataStructures
Chapter2 1-2 4 BasicDataStructures
Chapter2 1-2 4 BasicDataStructures
a) = 3
b) = 5
2 2
+
+ 2
Chapter 2
Cc cu trc d liu c bn
Ni dung
Cc khi nim c bn Mng v mng ng Con tr v cu trc lin kt
Danh sch tuyn tnh
Khi nim c bn
Cc kiu d liu dng sn (Built-in data types): c xy dng sn trong ngn ng lp trnh
Type
ANSI C Minimum
char
int short long
8
32 16 32
8
32 16 32 64
8
32 16 32 64
8
16 16 32 64
long long 64
Ngn ng lp trnh C
Khi nim c bn
Chun IEEE754/85:
Type Half (IEEE 754-2008) Single Du (sign) 1 1 M
(Exponent)
lch m
(Exponent Bias)
Gi tr (fraction) 10 23 16 32
5 8
15 127
Double
Quad
1
1
sign
11
15
1023
16383
exponent exponent bias
52
112
64
128
v (1)
(1 fraction)
Khi nim c bn
Kiu d liu tru tng (Abstract DataType - ADT) gm:
Tp cc gi tr Tp cc php ton c th thc hin trn cc gi tr ny
Cc kiu d liu dng sn chnh l ci t ca cc ADT tng ng bng ngn ng lp trnh c th.
Khi nim c bn
Cu trc d liu (data structure): Gm cc kiu d liu v cch lin kt gia chng. Cu trc d liu m t cch t chc v lu tr d liu trn my tnh s dng mt cch hiu qu nht.
Khi nim c bn
Thay i cu trc d liu khng lm thay i tnh chnh xc ca chng trnh. Tuy nhin n s lm thay i hiu qu ca chng trnh.
Tt nht nn chn cu trc d liu cho hiu qu cao nht ngay t khi thit k chng trnh!
Cu trc d liu lin kt: gm cc on(chunk) trong b nh (khng nm lin tc) v c lin kt vi nhau thng qua con tr. VD, danh sch, cy, v th danh sch k.
Mng
Mng : gm cc bn ghi c kiu ging nhau, c kch thc c nh. Mi phn t c xc nh bi ch s (a ch) Mng l cu trc d liu c cp pht lin tc c bn.
Mng
u im ca mng: Truy cp phn t vi thi gian hng s (): v thng qua ch s ca phn t ta c th truy cp trc tip vo nh cha phn t. S dng b nh hiu qu: ch dng b nh cha d liu nguyn bn, khng lng ph b nh lu thm cc thng tin khc. Tnh cc b v b nh: cc phn t nm lin tc trong 1 vng b nh, duyt qua cc phn t trong mng rt d dng v nhanh chng. Nhc im: khng th thay i kch thc ca mng khi chng trnh ang thc hin.
Mng
Mng ng (dynamic array): cp pht b nh cho mng mt cch ng trong qu trnh chy chng trnh. Trong C l malloc v calloc, trong C++ l new S dng mng ng ta bt u vi mng ch c 1 phn t, mi khi s lng phn t vt qu kh nng ca mng th ta li gp i kch thc ca mng c v copy cc phn t mng c vo na u ca mng mi. u im: trnh lng ph b nh khi phi khai bo mng c kch thc ln ngay t u Nhc im: phi thc hin thm cc thao tc copy phn t mi khi thay i kch thc.
Mng ng
T mng 1 phn t ti phn t, s ln phi thay i kch thc l log 2 S phn t phi di chuyn
log
=
=1
= 2
log
=1
< 2
=1
= 2 2
Thi gian duy tr mng ch l () Nhc im: mt s thi gian thc hin mt s thao tc khng cn ng l hng s na
Trong C/C++ :
*p ch p l mt bin con tr &x ch a ch ca bin x trong b nh Con tr NULL ch bin con tr cha c gn gi tr (khng tr vo u c)
Cu trc lin kt
Head
20
45
75
85
NULL
c im ca cu trc lin kt: Cn thm b nh ph lu cc con tr Khng cho php truy cp phn t mt cch ngu nhin
Cu trc lin kt
Danh sch lin kt n
Head
20
45
75
85
NULL
typedef struct list { DATA_TYPE item; /* data item */ struct list *pNext; /* point to successor */ } LIST;
Head
Head
u im: c th duyt danh sch theo c hai chiu Kim tra cui danh sch: con tr phi l NULL u danh sch: con tr tri l NULL
typedef struct list { DATA_TYPE item; struct list *pNext; struct list *pPrev; } LIST;
Nt u gi
10
Head Head
20
40
55
70
Nt u gi
Head Head
ng dng
V d. Bi ton Josephus C mt nhm gm n ngi c xp theo mt vng trn. T mt v tr bt k m theo chiu ngc chiu kim ng h v loi ra ngi th m trong vng. Sau mi ln loi li bt u m li vo loi tip cho n khi ch cn li 1 ngi duy nht.
MT S CU TRC D LIU C BN
Cc php ton c bn
Chn thm phn t Xa phn t Tm kim Kim tra rng
155
Trung bnh cn /2 dch chuyn mi khi thm Thi gian thc hin
i i+1
161
166
167 168 169
165
n n+1
177
178
125
135
155
i i+1
n-1 n
161 166
167
168
169
177 178
pHead
NULL
1. Cp pht b nh lu tr phn t mi 2. Cho con tr ca phn t mi tr vo phn t sau 3. Cho con tr ca phn t hin ti tr vo phn t mi
insert_list (Last, x)
Last
NULL
1. Cp pht b nh lu tr phn t mi 2. Cho con tr ca phn t mi tr vo NULL 3. Cho con tr ca phn t cui tr vo phn t mi
Kim tra danh sch rng: kim tra xem danh sch c cha phn t no hay khng.
bool isEmpty(LIST *Head) { if(Head==NULL) return true; return false; }
ng dng
VD1. Biu din a thc
ng dng
typedef struct poly{ float heSo; float soMu; struct poly *nextNode; } POLY; Cc thao tc:
Nhp a thc Hin th Cng Tr Nhn Tnh gi tr a thc Chia .