ứ !1 / 24
Lecture 11 – Hàng đợi (Queues)
!"#$%&'
()*$+,
(-%$#&
(.##
(/01,23*
(4567
ứ !2 / 24
Lecture 11 – Hàng đợi (Queues)
!"#$%&'
()*$+,
(-%$#&
(.##
(/01,23*
(4567
ứ !3 / 24
11.1. Khái niệm về hàng đợi
ứ !4 / 24
11.1. Khái niệm về hàng đợi
!"#$
%&'(#)!*)+&,-!"#$%&'(
)+*#),.
/&0%&1898:*8&98&:3,.
ứ !5 / 24
11.1. Khái niệm về hàng đợi
;1<=2!&"#$"23/!)3+45""#$6/789
!+):
;<!+%&3=
!"#$<>$&%#*"#$?)<)@%&
)+,=
;!"#$7A>$%3*"#$B;"#$;#)%C
"#$D%&E$FE,=
G9"#$;#)*"#$H"%&E$F,.
ứ !6 / 24
11.1. Khái niệm về hàng đợi
I+%&6&7@)7J*K,LE5".
M:7N)&L7)%&$:
&=
)E)-=
$OP=
)QRDSTEO9TE.
O#$#)&%&"%<"#$%C1>#$.
O#$< %&1#%.
ứ !7 / 24
11.1. Khái niệm về hàng đợi
2!+;6=
/&)5U!#?3#3#&
R&9@%C.
/&0U3%?3#3#&
V>W)55)B!<7$&.
/&%)4 U-@?3#3#&
23"#$75&" @4N!%)4 .
X%KY#-!"#$7A&ZEJ?"#$!%)4 %<.
A3%BCD#$#$?3#3#&
ứ !8 / 24
Lecture 11 – Hàng đợi (Queues)
!"#$%&'
()*$+,
(-%$#&
(.##
(/01,23*
(4567
ứ !9 / 24
E ( F G H
11.2. Cài đặt hàng đợi bằng mảng
[&B\>3@IJ:
]7(;&3: ^_9_U`
#%& "#$a`bc: ^_a=9_c=
-#%&b"#$: ^_b=9_c=
5" b"#$: ^_b=9_d=
5" b"#$?: ^_b=9_e=
/@Q %&?=
ứ !10 / 24
11.2. Cài đặt hàng đợi bằng mảng
=
;<!><7fg%<*,=
hbB5>#QW)>F9E6"#$#)4 )+h&=
7(;&:>K#KCL
/&3:>K#L
/&#:#KCL
"J" "#$&7MN@=#K#OL
"J"E"#$7"PQ=>K>OL
ứ !11 / 24
11.2. Cài đặt hàng đợi bằng mảng
2!+iEJ;?3#3# :
j"%&4 )fN?3#3#.
) <7f%<k)9)9l*9f,mQ +l"#$.
nY>RS?3#3#o0@<%7@$%&.
V>W)5-N :
I$?3#3#$TU.
X5QB5k)9)9p#3q
V7(;>#%5q
Gr'?3#3#%5q
ứ !12 / 24
)0$+=[&>sl"#$:
]7(;&3=
^_9_a
#%& t"#$a`uv=
^_a=9_d=
-#%&b"#$=
^_b=9_d=
5" b"#$=
^_b=9_e=
5" b"#$?
^_b=9_`=
/@Q %&?=
^_b=9_`.
11.2. Cài đặt hàng đợi bằng mảng
E
(
F
G
H
ứ !13 / 24
11.2. Cài đặt hàng đợi bằng mảng
=
;<!><7fg%<*,=
hbB5>#QW)>F9E6"#$#)4 )+h&=
7(;:>K#KE=
DQ=>K#L
/&#: #O'$KK>
"J" "#$&7#&MN@=#K #O'$L
"J"E7"PQ=
>K >O'$L
ứ !14 / 24
Lecture 11 – Hàng đợi (Queues)
!"#$%&'
()*$+,
(-%$#&
(.##
(/01,23*
(4567
ứ !15 / 24
11.3. Cài đặt hàng đợi bằng DSLK
.&%V"I!-)]?)Bs!i"]3]Bs:
?)#%)?=
755]45"9.
Link
Data
Node
"#
GE
`aaa
WEE (F
laa
XE FF
wa
E
YZ!!
ứ !16 / 24
XB-)]?) 75.
)n9x
^=
)n9y9E=
z=
"99^)n9yk)9)9n9=
"99^)x
k)9)9n99=
k)9)9n9=
zk)9)9=
11.3. Cài đặt hàng đợi bằng DSLK
ứ !17 / 24
!"#$&
O)*k)9)9{WE,x
k)9)9n9 W _ *k)9)9n9,
*|9^*)n9,,=
WU}^_E=
WU}9E_nP=
^*k)9)9~"*W,,x
W.9_W._W=
z
99x
W.U}9E_W=
W._W=
z
z
11.3. Cài đặt hàng đợi bằng DSLK
ứ !18 / 24
G!"#$7A&
V9*k)9)9{W,x
^*k)9)9~"*W,,
"•*€k)9)99"•€,=
99x
k)9)9n99"_W.9=
E_9"U}^=
W.9_W.9U}9E=
^*9"U}9E_nP,W._nP=
^99*9",=
9)E=
z
z
11.3. Cài đặt hàng đợi bằng DSLK
ứ !19 / 24
X(;&
XQ&37@.
k)9)9S4|9*k)9)9{W,
x
W.9_nP=
W._nP=
z
k)9)9~"*k)9)9W,
x
9)*W.9__nP,=
z
11.3. Cài đặt hàng đợi bằng DSLK
ứ !20 / 24
Lecture 11 – Hàng đợi (Queues)
!"#$%&'
()*$+,
(-%$#&
(.##
(/01,23*
(4567
ứ !21 / 24
11.4.1. Palindromes
X:2!)3%&1O95)%1E)@+1%&.
‚:%<!)37QE9)3">)3"97@q
MfN)3"9:[%#\&9##9&\]%
^66=
jQ>%(<)3B#)1)3 7W)9)9.
ID"#$67W)9)95)+)D["Y)3O9%&
;Y)3 7@">)3O9.
ứ !22 / 24
Lecture 11 – Hàng đợi (Queues)
!"#$%&'
()*$+,
(-%$#&
(.##
(/01,23*
(4567
ứ !23 / 24
11.4.2. Demerging
R?)&"FU.##
4:G9EJB):
V>$<!+W)>Fr'.B>%&%) T9.
23B>s%C:/1 <L
?) p%&H"9L.
#R;?)?%&7 %<%o?%&pH"9
L.
ứ !24 / 24
11.4.2. Demerging
R?)&"FU.##
_3@I=
ƒ%(7@)W)>:
I$)iH"E5".
j!";"6)i„*,%C&"+-.
ƒ%()W)>K:
I$35$##.
j!";"6>)i„*,.
ứ !25 / 24
11.4.2. Demerging
^35.##=
`. ;bW)9)93 #%&nPn…2.
b. M<3B>"E9EJ:
`. n5)"<?%W)9)9nP.
b. n5)"<%W)9)9n…2.
c. GJW)9)9nP7W)9)9%3:
`. -D"#$W)9)9.
b. VT9)").
v. GJW)9)9n…27W)9)9%3:
`. -D"#$W)9)9.
b. V45"T9)") .
d. X5]>)i.