Professional Documents
Culture Documents
STACK v QUEUE
(6 tit)
GV: Thn Vn S
slide 1/45
MC TIU
Sau chng ny bn c th:
Gii thch cu trc v cch lm vic ca stack
Bit s dng cu trc stack gii mt s bi
ton
Gii thch cu trc v cch lm vic ca queue
Bit s dng cu trc queue gii mt s bi
ton
GV: Thn Vn S
slide 2/45
NI DUNG
n tp.
4.1- Gii thiu
4.2- Chng-Stack.
4.3- Minh ha v s dng stack
4.4- Hng i - Queue
4.5- S dng queue
Tm tt.
GV: Thn Vn S
slide 3/45
n tp
Tm kim l qua trnh da trn mt cht thng tin
(kho tm kim) c xc nh v tr c thng
tin cn tm trong mt nhm tr.
Hai gii thut tm kim: Tm kim tuyn tnh v
tm kim nh phn.
Tm kim tun t c th dng cho mt nhm tr
bt k.
Tm kim nh phn ch dng cho nhm tr c
th t.
GV: Thn Vn S
slide 4/45
n tp
Sp xp l qa trnh ti b tr cc phn t trong
mt nhm tr theo mt c ch so snh no .
C ch selection sort: tm 1 tr nh nht trong
nhm tr cn phi sp xp a v u nhm
ny.
C ch Bubble sort: Hon chuyn dn cc tr nh
di ln pha trn.
C ch Insertion sort: Ly 1 tr pha sau chn vo
v tr thch hp trong nhm tr c th t pha
trc
GV: Thn Vn S
slide 5/45
slide 6/45
Gii thiu
Chng (stack)
Khi y
C ch:
Thm vo
GV: Thn Vn S
Ly ra
Chng 4- Stack v Queue
slide 7/45
Gii thiu
Queue- Hng i
GV: Thn Vn S
slide 8/45
Gii thiu
Queue- Hng i
Hng y
slide 9/45
4.2- Stack
M t stack
Khi to 1 stack
Kim tra stack trng
Kim tra stack y
Thm 1 phn t vo stack
Ly phn t nh stack ra
GV: Thn Vn S
slide 10/45
31
1000
...
...
Mng chim
dng b nh
bao nhiu?
2
7
9
5
Ti 1 thi
im, v tr
trn cng l v
tr no?
T* ar
1000
int maxSize 32
int top 3
K thut
template
cho php
nh ngha
1 tn gi
cho 1 kiu
d liu
tru
tng. Khi
s dng s
n nh
kiu c th
B nh
GV: Thn Vn S
slide 11/45
31
......
......
1
1000
T* ar
int maxSize
int top
St
T* ar
1000
int maxSize 32
int top -1
St
Cha c phn t no v 0 l v tr hp l
(ch s u ca mng) nn chon -1
GV: Thn Vn S
slide 12/45
31
......
......
1
1000
T* ar
1000
int maxSize 32
int top -1
GV: Thn Vn S
St
slide 13/45
Full
31
......
......
1000
T* ar
1000
int maxSize 32
int top 31
St
X
GV: Thn Vn S
slide 14/45
31
......
1000
GV: Thn Vn S
T* ar
1000
int maxSize 32
int top 1
2
St
ele
slide 15/45
31
1000
T* ar
......
1000
int maxSize 32
int top 2
1
St
ele
GV: Thn Vn S
slide 16/45
GV: Thn Vn S
// stack.h
#ifndef _STACK_H_
#define _STACK_H_
#include<string.h>
template <class T>
struct STACK
{ int maxSize;
T* ar;
int top;
};
template <class T>
void Init (STACK <T> & St, int
MaxSize=32)
{ if (MaxSize<=0) MaxSize=32;
St.maxSize= MaxSize;
St.ar = new T[St.maxSize];
St.top=-1;
}
Chng 4- Stack v Queue
Khai bo 1 kiu
template( mu) gi
l T
Nu 1 hm c tham
s/ d liu thuc
kiu template th
trc MI hin
thc hm phi khai
bo li kiu
template
tham s phi ch
nh c kiu
template
slide 17/45
GV: Thn Vn S
Dng hm memcpy
sao chp tr
thay v php gn
cho php phn t
ca stack c th
l chui
slide 18/45
GV: Thn Vn S
slide 19/45
4.3.1-Bi ton i s
Nhp 1 s long ( th d nhp n=13) v c s (th d
CoSo=2) , xut biu din ca s theo c s ny.
13
1
GV: Thn Vn S
0
1
1
0
1
Ngng
chia
1
1
0
1
1
1
0
1
Ly ra
slide 20/45
Ch bin dch
khi file.cpp
ang hin
hnh- Khng
bin dch
file.h
GV: Thn Vn S
slide 21/45
while (!Empty(St)
{ char c;
Pop(St,c);
Init(St,100);
int L= strlen (S);
for (i=0;i<L;i++)
Push( S[i],St);
GV: Thn Vn S
t
r
e
w
q
Chng 4- Stack v Queue
printf(%c,c);
}
slide 22/45
slide 23/45
slide 24/45
(3)(4)*(5)(6)*+(3)*
3 4 5 6
3 4 5 6
3
3
12
4
3
GV: Thn Vn S
12 30
126
42
30
6
5
12
42 3
30
12
3
42
Xong
slide 25/45
GV: Thn Vn S
slide 26/45
Biu thc
(-3.5)(4.7)+(7.2)(-5.6)**
i=6
i= 7 j=9
t=7,8,9,10
S = 4.7
4.7
i=11
GV: Thn Vn S
slide 27/45
GV: Thn Vn S
slide 28/45
Ton hng 2
trn, ton hng 1
di trong stack
GV: Thn Vn S
slide 29/45
Hm main
slide 30/45
GV: Thn Vn S
T tr li
slide 31/45
GV: Thn Vn S
slide 32/45
4.4.1- M t hng i
M t hng i: Mng 1 chiu
V tr ly ra
lun l 0
( u hng
i)
GV: Thn Vn S
V tr s thm
phn t mi
(bin rear ui)
slide 33/45
1000
int maxSize
Khi to vi
MaxSize =32
phn t
maxSize 32
T* ar
int rear
GV: Thn Vn S
ar
rear
1000
slide 34/45
1000
maxSize 32
ar
GV: Thn Vn S
rear
1000
slide 35/45
1000
31
maxSize 32
ar
GV: Thn Vn S
rear
1000
32
slide 36/45
7
5
1000
1
0
maxSize 32
ar
rear
Q
ele
GV: Thn Vn S
1000
rear
slide 37/45
31
2
1
0
maxSize 32
ar
rear
GV: Thn Vn S
31
Q
ele
rear
1000
32
slide 38/45
S dng Queue
Qun l in n.
Qun l qa trnh ca h iu hnh.
GV: Thn Vn S
slide 39/45
GV: Thn Vn S
slide 40/45
Th d 2: Queue in n
Tn my
S trang cn in
GV: Thn Vn S
slide 41/45
Bi tp v queue.
Mi my trong mi trng Internet c nhn din bng mt
a ch IP (Internet Protocol Address) gm 4 byte. M t 4
byte ny theo dng: 202.168.9.0 .Ba byte u ca IP address
dng nhn dng mng m my ny c kt ni (v Internet l
mng ca cc mng), byte cui cng dng nhn dng my
tnh ny trong mng.
Mt my client c th truy xut t server 1 ti nguyn (1 file).
Mt server nhn nhiu yu cu t client.
Vit chng trnh cho bit server s ln lt phc v client
theo th t no v ti nguyn no.
GV: Thn Vn S
slide 42/45
Tm tt
Stack: Cu trc danh sch cha 1 nhm cc phn
t lm vic theo c ch vo sau ra trc (Last In
First Out).
slide 43/45
Tm tt
Dng k thut template ca C++ gip hin thc
cu trc mc khi qut vi khai bo template
<class T>, T l tn gi do ta t t
Phi khai bo template <class T>li trc mi hin
thc hm c dng kiu tru tng T ny.
Khi gii bi ton c th. T s l mt kiu d liu
c th. Trnh bin dch s p dng kiu d liu c
th cho template ny.
GV: Thn Vn S
slide 44/45
Xin cm n
GV: Thn Vn S
slide 45/45