Professional Documents
Culture Documents
w07 Queue
w07 Queue
Ging vin: Hong Th ip Khoa Cng ngh Thng tin i hc Cng Ngh
Tng quan
diepht@vnu
Hng i
Hng i l g?
L mt danh sch nhng cc php ton ch c thc hin hai nh ca danh sch. Mt nh gi l u hng, nh cn li gi l cui hng.
Tnh cht
Vo trc ra trc (First In First Out: FIFO)
diepht@vnu
KDLTT hng i
Tru tng ha cu trc hng i
c t d liu
A = (a0, a1, , an) trong a0 l u hng i, an l cui hng i
c t cc php ton 1. Thm phn t x vo cui hng i: enqueue(x) 2. Loi phn t u hng i: dequeue() 3. Kim tra hng i c rng hay khng: isEmpty() 4. Kim tra hng i ht ch hay cha: isFull() 5. m s phn t ca hng i: size() 6. Tr v phn t u hng i: front()
diepht@vnu
diepht@vnu
Minh ha cc thao tc
thao tc enqueue(10) enqueue(5) front() dequeue() size() dequeue() front() dequeue() isEmpty() enqueue(8) li: hng i rng li: hng i rng true 1 10 output hng i (10) (10, 5) (10, 5) (5) (5) () () () () (8)
diepht@vnu
ng dng ca hng i
Trc tip
Danh sch hng i Qun l truy cp ti cc ti nguyn dng chung (v d my in) Multiprogramming
Gin tip
Cu trc d liu ph tr cho cc thut ton Mt phn ca CTDL khc
diepht@vnu
Ci t hng i bi mng
Dng mt mng c N theo kiu vng trn Dng 2 bin theo di u (front) v ui (rear) hng i
f l ch s ca phn t front r l ch s ca lin sau phn t rear
f
8
Cc thao tc
Ta s dng php chia ly d
Algorithm size() return (N f + r) mod N Algorithm isEmpty() return (f = r)
Q 0 1 2 Q 0 1 2 r f f r
diepht@vnu
Cc thao tc (2)
Thao tc enqueue nm mt ngoi l nu mng y y l ngoi l do ci t
Algorithm enqueue(o) if size() = N 1 then throw FullQueueException else Q[r] o r (r + 1) mod N
Q 0 1 2 Q 0 1 2 r f f r
diepht@vnu
10
Cc thao tc (3)
Thao tc dequeue nm ngoi l nu hng i rng y l ngoi l xc nh cho KDLTT hng i
Algorithm dequeue() if isEmpty() then throw EmptyQueueException else o Q[f] f (f + 1) mod N return o
Q 0 1 2 Q 0 1 2
diepht@vnu
f
11
Ci t hng i bi DSLK n
Ta c th ci t hng i bi mt danh sch lin kt n
Phn t front c lu nt u Phn t rear c lu nt cui
Khng gian s dng l O(n) v mi thao tc thc hin trong thi gian O(1)
r
cc nt
f
diepht@vnu
cc phn t
12
The Queue
diepht@vnu
13
Bi tp
1. Vit chng trnh ci t cu trc hng i bng mng. 2. Vit chng trnh ci t cu trc hng i bng danh sch lin kt n. 3. Tnh phc tp cho ci t cu 1, 2 4. Ci t hng i bng mng vng.
diepht@vnu
14
Chun b bi ti
c Chng 8 gio trnh (Cy)
diepht@vnu
15