You are on page 1of 16

Bi tp cu trc d liu v gii thut

Trang 1

Chng1
Tng quan v cu trc d liu v gii thut
Vit chng trnh hon chnh cho cc bi ton sau y
(cc bi tp v n tp, cc bi tp v rn luyn cch la chn mt cu trc d
liu thch hp; mt thut ton thch hp cho vn bi ton)
BT1-1. Cho n s nguyn dng a0,a1,a2,...,an-1.
a.Chn phn t x vo v tr k ca dy.
b.Xa tt c cc s nguyn t trong dy.
BT1-2. Cho ma trn vung n dng n ct; mi phn t ca ma trn l mt phn s
(gi thit rng t s v mu s ca cc phn s ny l cc s nguyn). Hy thc hin
cc yu cu sau:
a.Tm phn s c gi tr nh nht nm trong khong.(0;1).
b.m s lng phn s nm trong ma trn tam gic trn c gi tr nm trong
khong (0,1)
c.Sp xp cc phn s trong ma trn tng dn t tri qua phi v t trn
xung di.
BT1-3.Vit chng trnh to mt tp tin vn bn c tn l DAYSO.INP c cu
trc nh sau:
-Dng u tin ghi n (n l s nguyn dng nhp t bn phm).
-Trong cc dng tip theo ghi n s nguyn ngu nhin trong phm vi t 1 n
10000, mi dng 10 s (cc s cch nhau t nht mt du cch).
Hy thc hin cc cng vic sau y:
a.Tm gi tr ln nht ca cc s trong tp tin DAYSO.INP.
b.m s lng s chn, s lng s l trong tp tin DAYSO.INP.
c.Hy m s lng s nguyn t, s chnh phng, s hon ho, s
Amstrong trong tp tin DAYSO.INP.
Hy ghi kt qu ca cc cu a,b,c trn vo tp tin vn bn c tn l
DAYSO.OUT.
BT1-4.Vit chng trnh to tp tin vn bn c tn l BANGSO.INP c cu trc
nh sau:

Bi tp cu trc d liu v gii thut

Trang 2

-Dng u tin ghi hai s m v n (m, n l cc s nguyn dng nhp t bn


phm)
-Trong m dng tip theo mi dng ghi n s nguyn ngu nhin trong phm vi
t 0 n 1000 (cc s cch nhau t nht mt du cch)
Hy thc hin cc cng vic sau:
a.Hy cho bit ch s cc dng c cha s nguyn t (gi thit cc dng trong
tp tin vn bn c nh s t 0 n m-1).
b.Xoay vng cc ct qua phi mt v tr (ct 0 s qua ct 1, ct 1 qua ct 2,...
ct n-1 v ct 0).
c.Sp xp cc phn t tng dn trn tng ct.
Hy ghi cc kt qu trn vo file vn bn c tn l BANGSO.OUT.
BT1-5. Cho mng mt chiu gm n ta im (gi s honh v tung ca
cc im l cc s nguyn).
a.Hy tm mt im trong mng xa gc ta nht.
b.Hy tm ta hai im gn nhau nht.
c.Hy xc nh ta ca hnh ch nht nh nht bao ht c n im trn (ta
gc trn bn tri v ta gc di bn phi ca hnh ch nht).
V d n = 5 v ta 5 im l: (0,0); (0,3); (3,3); (4,1); (4,4).
Th kt qu cu a l im (4,4), kt qu cu b l (3,3) v (4,4), kt qu cu c
l (0,4); 4(,0).
BT1-6.Cho dy n s nguyn a0,a1,...,an-1. Hy chuyn k phn t u tin ca dy v
cui dy.
BT1-7.Gi s n 1 v x l s thc. Hy vit hm tnh gi tr ca biu thc sau y
(vi phc tp tuyn tnh):
S ( n, x ) =

x
x2
x3
xn

+
... + (1) n1
1
1
1 1+ 1 1+ 1 + 1
1 + + ... +
2
2 3
2
n

BT1.8.Tm s hng th n ca dy Fibonasci (gii quyt khi n l mt s ln khi


ta khng th s dng quy v cng khng th s dng mng lu tr).
BT1-9. Gi s n 0 v x l s thc.Hy tnh gi tr ca biu thc sau y.
x
1!

S(n,x) = 1 + +

x2 x3
xn
+
+ ... +
2! 3!
n!

Bi tp cu trc d liu v gii thut

Trang 3

BT1-10.a.Cho dy n s nguyn a0,a1,...,an-1.Hy tm dy con lin tip tng di nht.


b.Cho dy n s nguyn a0,a1,...,an-1.Hy tm on con di nht cha ton s 0.
c.Cho dy n s nguyn a0,a1,...,an-1.Hy tm dy con tng cha nhiu s
nguyn t nht.
BT1-11.a.Cng hai s nguyn ln a v b, trong s a c m ch s v s b c n
ch s.
S nguyn ln y l s c th c n vi trm ch s. lu tr cc s nguyn
ln ny ta c th dng chui (mi k t ca chui l mt ch s) hoc dng mng
mt chiu (mi phn t ca mng mt chiu l mt ch s). Tuy nhin trong hai
phng n ny th phng n dng mng mt chiu lu tr s c thut ton tt
hn.
b.Thc hin php tr hai s nguyn ln.
c.Thc hin php nhn hai s nguyn ln.
d.Thc hin php chia hai s nguyn ln.
BT1-12.Cho dy n s nguyn {a i, y gi s i=1..n} Dy con lin tip l dy m
thnh phn ca n l cc thnh phn lin tip nhau trong {a}, ta gi tng ca dy
con l tng tt c cc thnh phn ca n. Tm tng ln nht trong tt c cc tng
ca cc dy con ca {a}.
V d nu n = 7;
4

-7

Th kt qu tng l 7.
Phn gi :
BT1.9.
Algorithms1: O(N2)
float s=1;
for (int i=1;i<=n;i++)
s=s+pow(x,i)/giaithua(i);// giaithua(i) = i!=1.2.3.i
phc tp theo cch ny l O(N2), tuy nhin chng trnh khng th thc
hin c khi n ln; chng hn n =100 - do php tnh giai tha ca n khng th
thc hin..
Algorithms2: O(N2)

Bi tp cu trc d liu v gii thut

Trang 4

float s=1,p;
for (int i=1; i<=n;i++)
{
p=1;
for (int j=1; j<=i;j++)
p=p*x/j;
s=s+p;
}
phc tp theo cch ny vn l l O(N2), tuy nhin chng trnh khng
cn tnh giai tha ca n.
Algorithms3: O(N) phc tp tuyn tnh
float s=1,p=1;
for (int i=1;i<=n;i++)
{
p=p*x/i;
s=s+p;
}
BT1-11.a.
Nhp m ch s ca s a, lu vo mng mt chiu a.
Nhp n ch s ca s b, lu vo mng mt chiu b.
Gi s ta c hai s a=97895 v b = 6478
i
a[i]
B[i]
Lu nu

0
9
6
khi nhp m

1
7
4
khng ging

2
8
7
hng bn phi

3
4
9
5
8
th kt qu s sai, ta c

th tin hnh nhp hai s a,b theo cch sau khc phc tnh trng ny:
t max l s ln nht trong hai gi tr m v n.
Vic nhp hai s a ,b c tin hnh nh sau:
for i=max-m+1;i<=max;i++
cin>>a[i];
for i=max-n+1;i<=max;i++
cin>>b[i];

Bi tp cu trc d liu v gii thut

Trang 5

Sau thc hin php cng nh cch thng thng:


remember=0;
for (i=max; i >=1;i--)
{
c[i]=(a[i]+b[i]+remember)%10;
remember=(a[i]+b[i]+remember)/10;
}
c[0]=remember;
mng c[i] chnh l tng ca hai s a v b.
Lu l gi tr c[0] ny ch xut ra khi n khc 0.
on chng trnh xut kt qu nh sau:
if (c[0]!=0) cout<<c[0];
for (i=1;i<=max;i++)
cout<<c[i];
D liu th:
m =5; n = 4;
a = 97895, b = 6478
Gi tr ca cc phn t ca hai mng a v b l:
a[1] = 9,

a[2]=7;

a[3]=8;

a[4]=9.

a[5]=5.

b[2] = 6,

b[3]=4;

b[4]=7;

b[5]=8

BT1-12
Algorithms1: O(N3)
Thut ton n gin nht c th vit ngay l: Xt tt c cc cp s nguyn L
v U tha mn 1 L U n; i vi mi cp nh vy ta tnh tng ca dy con
a[L..U] v so snh tng ny vi gi tr ln nht hin c:
for (L=1;L<=n;L++)
for (U=L;U<=n;U++)
{
sum=0;
for (int I=L;I<=U;I++)

Bi tp cu trc d liu v gii thut

Trang 6

sum=sum+a[I];
maxsofar=max(maxsofar,sum);
}
Chng trnh ny tuy d hiu, nhng n chy rt chm. Thut ton ny c phc
tp l O(n3). Cc bn xem nu n=10000 th thi gian dnh cho thut ton ny l qu
ln.
Algorithms2:O(N2)
Ta c th ci tin thut ton trn c thut ton vi phc tp l O(n 2)
bng cch s dng h thc :
Tng a[L..U]= Tng a[L..U-1]+a[U]
maxsofar=0;
for (L=1;L<=n;L++)
{
sum=0;
for (U=L;U<=n;U++)
{
sum=sum+a[U];
maxsofar=max(maxsofar,sum);
}
}
Algorithms3:O(N)
Tng ln nht trong dy con a[1..i] l tng ln nht trong dy con a[1..i-1] gi l maxsofar hoc tng ln nht trong tt c cc tng ca cc dy con kt thc ti
i - gi l maxendinghere. Chng ta c nhn xt rng: Dy con ln nht kt thc ti i
l dy con ln nht kt thc ti v tr i-1 c b sung thm phn t a[i] cui hoc
l dy con rng trong trng hp tng ca dy con nhn c l s m. Ta c thut
ton nh sau:
maxsofar=0;
maxendinghere=0;
for (i=1; i<=n;i++)
{
maxendinghere=max(maxendinghere+a[i],0);

Bi tp cu trc d liu v gii thut

Trang 7

maxsofar=max(maxsofar,maxendinghere);
}
Minh ha cho thut ton ny nh sau:
i
1
2
A[i]
4
-5
maxendinghere
4
0
Maxsofar
4
4
Thut ton ny c phc tp l O(n).

3
6
6
6

4
-4
2
6

5
2
4
6

6
3
7
7

7
-7
0
7

Bi tp cu trc d liu v gii thut

Trang 8

Chng2

Tm kim & sp xp
Vit chng trnh hon chnh cho cc bi ton sau y
BT2-1.Cho dy s.
84

32

13

64

55

48

Hy m phng sp xp tng dn dy s trn bng cc thut ton ton chn


trc tip, i ch trc tip, ni bt, chn trc tip.
BT2-2.Cho dy n s nguyn a[0],a[1],,a[n-1] c sp xp tng dn v mt s
nguyn x.
a.Hy vit hm tm kim nh phn kim tra xem x c thuc dy s trn hay
khng ? Nu tm thy tr v gi tr i nh nht m a[i] = x, nu khng tr v
gi tr -1.
b.Cho bit k s phn t ln nht ca dy.
V d vi n=12
9

Nu k=5 th kt qu l 9, 9, 9, 9, 7
BT2-3.Cho mng mt chiu n phn t. Sp xp cc s nguyn t tng dn, cc s
khc gi nguyn gi tr v v tr.
BT2-4.Cho ma trn hai chiu m dng, n ct. Hy sp tng dn cc phn t theo
chiu t tri qua phi v t trn xung di.
BT2-5.Vit chng trnh cho cc phng php sp xp sau:
a.i ch trc tip
b.Chn trc tip
c.Chn trc tip
d.Ni bt.
BT2-6.Cho dy s.
84

32

13

64

55

48

Hy m phng sp xp tng dn bng cc thut ton ton Quick Sort, Merge


Sort, Heap Sort, Shell Sort qua dy s trn.

Bi tp cu trc d liu v gii thut

Trang 9

BT2-7.Cho mng mt chiu gm n phn t l cc s nguyn. Hy sp xp cc s


chn trong mng theo th t tng, sp xp cc s l theo th t gim dn, cc s 0
gi nguyn v tr.
BT2-8.Cho hai tp tin vn bn cha cc s nguyn c sp tng dn. Hy trn
hai tp tin ny c mt tp tin cng c sp tng dn (khng dng mng).
BT2-9.Cho mt tp tin vn bn. Hy cho bit s lng ca cc s nguyn t, chnh
phng, hon ho, s Amstrong trong tp tin ny.
BT2-10.Hy v cy phn hoch qui ca thut ton Quick-Sort trong trng hp
xu nht. T , chng t rng chi ph thut ton Quick-sort trong trng hp ny
l O(n2).
BT2-11.Hy cho bit s phn t ti thiu v ti a trong mt heap c chiu cao h ?
BT2-12.a.Vit

chng

trnh

cho

phng

php

sp

xp

Quick

sort.

b.Vit chng trnh cho phng php sp xp cy (heap sort).


c.Vit chng trnh cho phng php sp xp trn trc tip (merge sort).
d.Vit chng trnh cho phng php sp xp vi di bc gim dn (shell sort).

Bi tp cu trc d liu v gii thut

Trang 10

Chng3
Cu trc danh sch lin kt
Vit chng trnh hon chnh cho cc bi ton sau y
BT3-1.Cho mt danh sch lin kt n l, mi nt l mt s nguyn dng.
a.Tm phn t ln nht danh sch l.
b.Tm tng cc phn t ca danh sch l.
c.m xem trong danh sch l c bao nhiu s nguyn t ?
d.m xem trong danh sch c bao nhiu s m ? bao nhiu s bng 0 ? bao
nhiu s dng ?
e.m xem trong danh sch c bao nhiu s bng x ?
f.Tm phn t dng nh nht trong danh sch.
BT3-2. Cho mt danh sch lin kt n l, mi nt l mt s nguyn dng.
a.Xa phn t u tin trong danh sch.
b.Xa phn t cui cng trong danh sch.
c.Xa mt phn t c tr bi con tr q.
d.Xa mt phn t ngay trc phn t c tr bi con tr q.
e.Xa mt nt c gi tr k.
f.Xa tt c cc s c gi tr nguyn t.
BT3-3. Cho mt danh sch lin kt n l, mi nt l mt s nguyn dng.
a.Hy to danh sch l1 ch cha cc s nguyn t t danh sch l.
b.Tch danh sch l thnh 2 danh sch: mt danh sch cha ton s chn, mt
danh sch cha ton s l.
c.Sp xp cc phn t ca l gim dn theo phng php chn trc tip.
BT3-4.Vit chng trnh thc hin cc yu cu sau:
a.Khai bo cu trc d liu ca mt danh sch lin kt n cc tnh. Bit
rng thng tin ca mi tnh bao gm: tn tnh, din tch, dn s
b.Ci t cc thao tc c bn cho danh sch lin kt n cc tnh (thm, sa ,
xa, duyt).
c.Tnh tng din tch ca tt c cc tnh trong danh sch lin kt

Bi tp cu trc d liu v gii thut

Trang 11

d.Tm a ch ca node cha tnh c din tch ln nht trong danh sch lin
kt.
e.Tm mt tnh c dn s ln nht.
f.Sp xp danh sch tng dn theo din tch.
BT3-5.Vit chng trnh thc hin cc yu cu sau:
a.Khai bo cu trc d liu ca mt danh sch lin kt n lu ta cc
nh ca mt a gic li trong mt phng OXY.
b.Tnh chu vi ca a gic.
c.Tnh din tch ca a gic.
BT3-6.Cho mt danh sch lin kt, mi nt cha mt s nguyn.
a.Thm mt phn t c gi tr x vo u danh sch
b.Ch gi li mt gi tr trong s cc gi tr ging nhau.
c.Kim tra xem danh sch c c sp xp tng dn hay khng?
d.o ngc danh sch.
e.Sp xp cc s chn trong danh sch theo th t tng, sp xp cc s l
theo th t gim dn, cc s 0 gi nguyn v tr..
BT3-7.Cng hai a thc (mi node c 3 thnh phn: h s khc 0 ca mt s hng,
s m tng ng v mc ni ti node tip theo).
BT3-8.Ta c 4 la chn: 1. Stack; 2. Queue; 3. List; 4. C 3 CTDL ny u khng
thch hp. Trong mi tnh hung sau, hy cho bit p dng la chn no l thch
hp nht:
a.Cc khch hng ti quy bn v xe la ly s th t mua v
b.Mt danh sch tn theo th t ABC
c.Cc s nguyn cn phi sp th t
d.Danh sch cc mn hng bn trong ngy ti quy thu ngn trong siu
th
e.Chng trnh c s dng k thut Back-tracking
f.Cc my bay ang ch p xung phi trng
BT3-9.Tnh gi tr ca a thc P(x) vi x v cc h s cho bit trc c t chc
di dng mt danh sch lin kt (mi node c 3 thnh phn: h s khc 0 ca mt
s hng, s m tng ng v mc ni ti node tip theo).
BT3-10.Hon chnh cc thao tc trn Stack v Queue.

Bi tp cu trc d liu v gii thut

Trang 12

BT3-11.a.Ci t thut ton sp xp chn trc tip trn xu kp


b.Sp xp danh sch tng dn thut ton Quick sort.
c.Ci t thut ton Mergesort trn xu kp.

d.Hy th hin thut ton sp xp ni bt trn danh sch lin kt kp.


BT3-12.Tnh gi tr ca mt biu thc dng chui k t bao gm cc ch s v cc

php ton +,-,*,/ , % v du ng m ngoc n.


V d: (( 2 + 3 )*2) 4/2 = 12

Bi tp cu trc d liu v gii thut

Trang 13

Chng4

Cu trc cy
Vit chng trnh hon chnh cho cc bi ton sau y
BT4-1.Cho cy nh hnh sau. Hy tr li cc cu hi sau:
a.Cc nt no l nt l ?

b.Cc nt no l nt nhnh ?
c.Cha ca nt G l nt no ?
d.Con ca nt C l cc nt no ?
e.Cc nt no l anh em ca nt B ?
f.Mc ca D, ca L l bao nhiu ?

g.Bc ca B, bc ca D l bao nhiu ?

h.Bc ca cy ny l bao nhiu ?


i.Chiu cao ca cy ny l bao nhiu ?
j. di t A n F, t A dn G l bao
nhiu ?
k.C bao nhiu ng i t gc A c di 3 trn cy ny ?
BT4-2.a.Hy v cy nh phn tm kim T bit rng khi duyt cy T theo th t
Node Left - Right th c dy nh sau: 9, 4, 1, 3, 8, 6, 5, 7, 10, 14, 12, 13, 16,
19.
-Hy duyt cy T trn theo th t left right node, left -node-right.
-Lit k cc nt l ca cy ? cc nt nhnh ca cy ?
-Hy v li cy sau khi xo nt 10 sao cho T vn l cy nh phn tm kim.
b.Cho cy nh phn tm kim T gm 12 s nguyn vi php duyt LRN cho kt qu
nh sau: 1,3,2,6,7,5,4,10,9,12,11,8
-Hy v cy nh phn tm kim T.
-Duyt cy T theo th t NLR
-V li cy sau khi xo nt 8.
c.Hy cy nh phn tm kim T gm 11 s nguyn, vi th t cc nt c cho nh
sau: 14(gc), 11, 9, 18, 16, 20, 30, 10, 17, 1, 15
Hy duyt cy trn theo cc th t node- left-right, left- node-right, left- right- node.

Bi tp cu trc d liu v gii thut

Trang 14

Hy cho bit chiu cao ca cy T.


BT4-3.Cho cy nh phn T (nt gc c gi tr l 4) nh

hnh v bn:

-Cy T c phi l cy nh phn tm kim khng ?


2

-Hy duyt cy T theo cc th t node-left-right, left-

node-right, left- right- node.


3
3

-Cy T c chiu cao bao nhiu ?

-Lit k cc nt l ca cy T.
-Lit k cc nt nhnh ca cy T.

BT4-4.Cho cy nh phn nh hnh v


A

sau.
Hy vit dy cc nt c thm khi

duyt cy ny theo
a.th t trc

b.th t gia
c.th t sau.

BT4-5.Cho cy nh phn tm kim T,


mi nt cha mt s nguyn. Hy vit cc hm thc hin cc yu cu sau:
a.S nt l.
b.S nt c ng 1 cy con.
c.Vit hm m s nt c bc bng 2 trong cy nh phn (hy kim nghim li
rng s nt l lun bng s nt bc 2 cng thm 1)
d.S nt c kho nh hn x (gi s T l cy nh phn tm kim).
e.S nt c kho nh hn x v ln hn y (gi s T l cy nh phn tm kim)
f.m xem trong cy T c bao nhiu s chn, bao nhiu s l ?
g.Kim tra xem gi tr k c trong cy T khng ?
h.m xem trong cy c bao nhiu nt c gi tr m? bao nhiu nt c gi tr
dng?
i.Kim tra xem gi tr x c trong cy khng ?
j.Tm gi tr ln nht, gi tr nh nht ca cy.
k.Tm phn t dng nh nht ca cy.

Bi tp cu trc d liu v gii thut

Trang 15

BT4.6.Cho cy nh phn tm kim T, mi nt cha mt s nguyn. Hy vit cc


hm thc hin cc yu cu sau:
a.Chiu cao ca cy.
b.Tm lch ca cy.
c.Xa phn t c gi l x trong cy
d.Xa cc s nguyn t ra khi cy
e.Thm mt phn t c gi tr x vo trong cy cy vn l cy nh phn tm
kim.
BT4-7.Cho cy nh phn tm kim T, mi nt cha mt s nguyn. Hy vit cc
hm thc hin cc yu cu sau:
a.m s lng nt nm mc th k.
b.In ra tt c cc nt mc th k ca cy T
c.In ra tt c cc nt theo th t tng 0 n tng th h-1 ca cy T( h l chiu
cao ca cy)
BT4-8.Cho mt cy nh phn biu din 1 biu thc ton hc. Bit rng gc ca cy
l Proot, mi nt c thuc tnh key (kiu ch) , cha 1 php tnh(+,- , *,/) hay mt
gi tr nguyn (cc nt l). Hy vit hm tnh gi tr biu thc cha trong cy
BT4-9.Hy nu nh ngha ca cu trc d liu ca cy nh phn tm
kim(CNPTK). Khai bo kiu CNPTK c tn l TREE m mi phn t cha mt s
nguyn v thc hin cc cng vic sau:
a.Xy dng hm tm kim phn t c kha x trn CNPTK T(gi tr tr v ca hm
l con tr tr n phn t tm c) hoc bng NULL, nu khng tm thy.
b.Xy dng hm m s phn t c kha ln hn k trn CNPTK T.
BT4-10.Vit chng trnh qun l mt danh b in thoi n gin bao gm cc thng tin:
s thu bao, h tn ch thu bao, a ch. Chng trnh cho php cp nht: thm/xo/ sa
v tm kim thng tin v mt s thu bao no .
BT4-11.Cho mt cy nh phn T, mi nt l mt s nguyn. Hy vit cc hm thc

hin cc yu cu sau:
a.Hy m s nt ca cy.
b.Cho bit chiu cao ca cy AVL
c.Kim tra xem T c phi l cy nh phn tm kim khng ?
d.Kim tra xem T c phi l cy cn bng hon ton khng ?

Bi tp cu trc d liu v gii thut

Trang 16

e.Kim tra xem T c phi l cy nh phn cn bng khng ?


f.Thm mt phn t vo cy AVL
g.Hy mt phn t trn cy AVL.
BT4-12.Cho cy nh phn T trong thng tin ti mi nt trong cy biu din cc

thnh phn thng tin ca mt c gi. Bit rng mt c gi gm nhng thnh phn:
M c gi, tn c gi, ngy sinh, a ch, ngy lp th.
a.Tm a ch ca c gi ln tui nht trong cy.
b.Lit k cc c gi trong cy sinh sau nm 1975
c.m s lng node c 2 cy con c ngy lp th trong ngy
09/07/2009.
d.Tm kim a ch theo m c gi.
e.Lit k cc c gi trong cy.

You might also like