cap5-parte1-v2
DESCRIPTION
Cap 5TRANSCRIPT
-
Pesq
uis
a em
M
emr
iaPr
imr
ia
Livr
oPr
ojet
ode
Algo
ritm
os
N
vio
Zi
vian
iCa
ptu
lo5
http
://w
ww
2.dc
c.ufm
g.br
/livro
s/alg
orit
mos/
-
AlgoritmoseEstruturade Dados II
Pesq
uis
a em
M
emr
ia Pr
imr
ia
In
trodu
o
-Co
nce
itos
Bsi
cos
Pe
squ
isa
Se
qe
nci
al
r
vore
sde
Pesq
uis
a
r
vore
s Bi
nr
ias
dePe
squ
isa
se
m Ba
lan
cea
me
nto
r
vore
s Bi
nr
ias
dePe
squ
isa
com
Bala
nce
am
en
to
r
vore
sSB
B
Tra
nsf
orm
a
es
para
M
an
ute
n
o da
Pr
opr
ieda
deSB
B
Pesq
uis
aD
igita
l
Trie
, Pa
trici
a
Tra
nsf
orm
a
ode
Cha
ve(H
ash
ing)
Li
sta
s En
cade
ada
s,En
dere
am
en
to Ab
erto
, H
ash
ing
Perfe
ito
-
AlgoritmoseEstruturade Dados II
Intr
odu
o
-Co
nce
itos
Bs
ico
s
Es
tudo
deco
mo re
cupe
rar
info
rma
oa
parti
rde
um
a
grande
m
ass
ade
info
rma
o pr
evi
am
ente
arm
aze
na
da.
A
info
rma
o
divi
dida
em
re
gist
ros.
Ca
da re
gist
ro po
ssui u
ma ch
ave
pa
rase
rusa
da na
pesq
uis
a.
O
bjetiv
o da
pe
squ
isa:
Enco
ntra
r um
a ou m
ais
oco
rrn
cia
sde
regi
stro
sco
mch
ave
s ig
ua
is
chave
depe
squ
isa.
Pe
squ
isa
com
suce
sso
XPe
squ
isa
sem
su
cess
o.
-
AlgoritmoseEstruturade Dados II
Intr
odu
o
-Co
nce
itos
Bs
ico
s
Ta
bela
s
Co
njun
tode
regi
stro
s o
u a
rqu
ivo
s
TABE
LAS
Ta
bela
:ass
oci
ada
ae
ntid
ade
sde
vida
cu
rta, cr
iada
s n
a
me
mr
ia in
tern
a du
ran
tea
exe
cu
ode
u
mpr
ogr
am
a.
Ar
quiv
o:g
era
lme
nte
a
sso
cia
doa
en
tida
des
devi
da m
ais
lon
ga,
arm
aze
na
das
em
m
em
ria
e
xte
rna
.
D
istin
o
no
rg
ida
:
ta
bela
:a
rqu
ivo
den
dice
s
a
rqu
ivo
:ta
bela
deva
lore
sde
fun
e
s.
-
AlgoritmoseEstruturade Dados II
Esco
lha
doM
to
dode
Pesq
uis
a m
ais
Ade
quad
oa
um
a D
eter
min
ada
Apl
ica
o
D
epe
nde
pr
inci
palm
en
te:
1.Qu
an
tida
dedo
s da
dos
en
volvi
dos.
2.Ar
quiv
o e
sta
r su
jeito
ain
ser
es
ere
tira
das
freq
en
tes.
Se
co
nte
do
doa
rquiv
o
est
ve
lim
porta
nte
min
imiz
ar
o te
mpo
de
pesq
uis
a,se
m pr
eo
cupa
o
com
o
te
mpo
ne
cess
rio
pa
ra e
stru
tura
ro
arq
uiv
o
-
AlgoritmoseEstruturade Dados II
Alg
orit
mo
sde
Pe
squ
isa
Tipo
s A
bstr
ato
sde
D
ado
s
im
porta
nte
co
nsi
dera
r o
s a
lgo
ritm
os
depe
squ
isa
co
mo
tip
os
abs
trato
sde
da
dos,
co
m u
mco
njun
tode
ope
ra
es
ass
oci
ado
au
ma
e
stru
tura
de da
dos,
de
talf
orm
aqu
e ha
ja u
ma
in
depe
nd
nci
ade
impl
em
en
ta
o pa
raa
so
pera
e
s.
O
pera
e
s m
ais
co
mu
ns:
1.In
icia
liza
ra
est
rutu
rade
da
dos.
2.Pe
squ
isa
ru
mo
u m
ais
re
gist
ros
com
dete
rmin
ada
ch
ave
.
3.In
serir
um
n
ovo
regi
stro
.
4.R
etir
ar
um
regi
stro
e
spe
cfic
o.
5.O
rde
na
ru
ma
rqu
ivo
pa
ra o
bte
r to
dos
os
regi
stro
s e
m o
rde
mde
aco
rdo
com
a
cha
ve.
6.Aju
nta
r do
is a
rqu
ivo
s pa
ra fo
rma
ru
ma
rqu
ivo
m
aio
r.
-
AlgoritmoseEstruturade Dados II
Dic
ion
rio
N
om
eco
mu
me
nte
u
tiliz
ado
pa
ra de
scre
ver
um
a e
stru
tura
de
dado
spa
ra pe
squ
isa
.
D
icio
nr
io
um
tipo
a
bstra
tode
da
dos
com
a
so
pera
e
s:
1.In
icia
liza
2.Pe
squ
isa
3.In
sere
4.R
etir
a
An
alo
gia
com
u
mdi
cio
nr
io da
ln
gua
po
rtugu
esa
:
Ch
ave
s
pala
vra
s
R
egi
stro
s
en
trada
s a
sso
cia
das
com
pr
on
nci
a, de
fini
o, si
nn
imo
s, o
utra
s in
form
a
es
-
AlgoritmoseEstruturade Dados II
Pesq
uis
a Se
qen
cial
M
to
dode
pesq
uis
a m
ais
sim
ples
:a
parti
rdo
prim
eiro
re
gist
ro,pe
squ
ise
se
qe
nci
alm
en
te a
te
nco
ntra
ra
cha
ve pr
ocu
rada
;en
to
pare
.
Ar
maz
en
ame
nto
de u
mco
njun
tode
regi
stro
s po
r m
eio
dotip
o e
stru
tura
do a
rra
njo:
-
AlgoritmoseEstruturade Dados II
Pesq
uis
a Se
qen
cial
# de
fine
M
axn
10
type
defl
on
gTi
poCh
ave
;
type
def s
truct
R
egi
stro
{Ti
poCh
ave
Ch
ave
;/*
ou
tros
com
pon
en
tes
*/
}Re
gist
ro;
type
def i
nt I
ndi
ce;
type
def s
truct
Ta
bela
{R
egi
stro
Item
[Ma
xn+
1];
Indi
cen
;}T
abe
la;
-
AlgoritmoseEstruturade Dados II
Pesq
uis
a Se
qen
cial
Im
ple
me
nta
o
pa
raa
so
pera
e
s In
icia
liza
,Pe
squ
isa
:
void
Inic
ializ
a(T
abe
la*T)
{ T-
>n =
0;
} Indic
e Pe
squ
isa(T
ipo
Chave
x,Ta
bela
*T)
{in
ti;
T->
Item
[0].Ch
ave
= x;
i = T-
>n +
1;
do { i
--;
} whi
le (T
->
Item
[i].Ch
ave
!= x);
retu
rn i;
}
-
AlgoritmoseEstruturade Dados II
Pesq
uis
a Se
qen
cial
Indi
ce ge
tN(T
abe
la *T)
{ retu
rn T-
>n;
} Indic
e Pe
squis
a(T
ipo
Chave
x,Ta
bela
*T,
In
dice
k){
inti
;T-
>Ite
m[0]
.Ch
ave
= x;
i = k;
do { i
--;
} whi
le (T
->
Item
[i].Ch
ave
!= x);
retu
rn i;
} void
re
cupe
raR
egi
stro
s(Ta
bela
*T,
Ti
poCh
ave
x){ I
ndi
ce k;
k =
Pesq
uis
a(x,
T, ge
tN(T
)+1);
if (k!
= 0)
prin
tf(Ac
hou x
no %
d!\n
,k);
els
e pr
intf(
Na
o ach
ou x!
\n);
whi
le (k
!= 0)
{k
= Pe
squis
a(x,
T,k);
pr
intf(
Acho
u x
no %
d!\n
,k);
}}
-
AlgoritmoseEstruturade Dados II
Pesq
uis
a Se
qen
cial
Im
ple
me
nta
o
pa
ra a
o
pera
cao
In
sere
:
void
Inse
re(R
egi
stro
R
eg,
Tabe
la*T)
{ if
(T->
n =
=M
axn
) pr
intf("
Erro
:ta
bela
ch
eia
\n");
els
e{
T->
n+
+;
T->
Item
[T->
n] =
Reg;
}}
-
AlgoritmoseEstruturade Dados II
Pesq
uis
a Se
qen
cial
Pe
squ
isa
re
torn
ao
ndi
cedo
regi
stro
qu
e co
nt
ma
chav
ex;
Ca
so n
o e
ste
ja pr
ese
nte
, o
valo
r re
torn
ado
ze
ro.
A
impl
eme
nta
o
no
su
porta
m
ais
de u
mre
gist
roco
mu
ma
m
esm
a ch
ave
.
Pa
raa
plic
a
esco
me
sta
ca
ract
ers
tica
n
ece
ssr
io in
clu
irum
arg
um
ento
am
ais
n
a fu
n
o
Pesq
uis
a pa
ra co
nte
ro
ndi
cea
parti
rdo
qua
lse
que
r pe
squ
isa
r.
-
AlgoritmoseEstruturade Dados II
Pesq
uis
a Se
qen
cial
Ut
iliza
o
de u
mre
gist
ro se
ntin
ela
n
a po
si
oze
ro do
a
rra
y:
G
ara
nte
qu
ea
pesq
uis
a se
mpr
e te
rmin
a:
se o
ndi
ce re
torn
ado
por
Pesq
uis
afo
r ze
ro, a
pesq
uis
a fo
i se
m su
cess
o.
N
o
ne
cess
rio
te
sta
rse
i >
0,
devi
doa
isto
:
o
a
ne
l in
tern
o da
fu
n
o Pe
squ
isa
e
xtre
ma
me
nte
sim
ple
s: o
ndi
cei
decr
em
en
tado
e a
cha
vede
pesq
uis
a
com
para
daco
m a
cha
ve qu
e e
st
no
regi
stro
.
is
to fa
zco
mqu
e e
sta
t
cnic
a se
ja co
nhe
cida
co
mo
pesq
uis
a se
qe
nci
al r
pid
a.
-
AlgoritmoseEstruturade Dados II
Pesq
uis
a Se
qen
cial
An
lis
e:
Pe
squ
isa
com
suce
sso
:
m
elh
or
caso
: C(
n) =
1
pi
or
caso
:
C(n
) = n
ca
so m
dio
: C(
n) =
(n
+ 1)
/ 2
Pesq
uis
a se
m su
cess
o:
C
(n) =
n
+
1.
O
a
lgo
ritm
ode
pesq
uis
a se
qe
nci
al
am
elh
or
esc
olh
a pa
rao
pro
ble
ma
depe
squ
isa
em
ta
bela
sco
ma
t25
regi
stro
s.
-
AlgoritmoseEstruturade Dados II
Pesq
uis
a B
inr
ia
Pe
squ
isa
em
ta
bela
po
dese
rm
ais
efic
ien
te
Sere
gist
ros
fore
m m
antid
os
em o
rdem
Pa
rasa
ber
seu
ma
cha
ve
est
pre
sen
te n
a ta
bela
1. Co
mpa
re a
cha
veco
m o
regi
stro
qu
e e
st
na
po
si
odo
me
io
da ta
bela
.
2. Se
a
cha
ve
me
no
r e
nt
oo
regi
stro
pr
ocu
rado
e
st
na
prim
eira
m
eta
de da
ta
bela
3. Se
a
cha
ve
ma
ior
en
to
ore
gist
ro pr
ocu
rado
e
st
na
segu
nda
m
eta
de da
ta
bela
.
4.R
epi
tao
pro
cess
o a
tqu
ea
cha
ve se
ja e
nco
ntra
da,
ou
fiq
ue
ape
na
su
mre
gist
ro cu
ja ch
ave
di
fere
nte
da
pr
ocu
rada
,
sign
ifica
ndo
u
ma
pe
squ
isa
se
m su
cess
o.
-
AlgoritmoseEstruturade Dados II
Exem
plo
dePe
squ
isa
Bin
ria
pa
raa
Chav
eG
-
AlgoritmoseEstruturade Dados II
Pesq
uis
a B
inr
ia
Anl
ise
A
cada
ite
ra
odo
alg
orit
mo, o
tam
anho
da
ta
bela
di
vidi
do ao m
eio
.
Lo
go: o
nm
ero
deve
zes
que
ota
manho
da
ta
bela
di
vidi
do ao m
eio
ce
rca
de lo
g n
.
R
ess
alva:
o
cust
o pa
ra m
ante
ra
tabe
la ord
ena
da
alto
: a
cada
in
ser
o na po
si
op
da ta
bela
im
plic
ano
desl
oca
me
nto
dos
regi
stro
sa
parti
r da
po
si
op
para
as
posi
e
s se
guin
tes.
Co
nse
qe
nte
mente
, a
pesq
uis
a bi
nr
ia no
de
vese
rusa
da em
apl
ica
es
muito
di
nm
icas.
-
Tran
sfo
rma
ode
Chav
e(H
ashi
ng)
O
sre
gist
ros
arm
aze
na
dos
em
u
ma
ta
bela
s
o di
reta
me
nte
en
dere
ado
sa
parti
rde
um
a tra
nsf
orm
a
o a
ritm
tic
a so
bre
ach
ave
depe
squ
isa
.
H
ash
sign
ica
:
Fa
zer
pica
din
hode
ca
rne
e
vege
tais
pa
ra co
zin
har.
Fa
zer
um
a ba
gun
a. (W
ebs
ter
s N
ew
W
orld
D
ictio
na
ry)
AlgoritmoseEstruturade Dados II
-
Tran
sfo
rma
ode
Chav
e(H
ashi
ng)
Um
mt
odo
depe
squ
isa
com
o
uso
da
tra
nsf
orm
a
ode
cha
ve
con
stitu
do
dedu
as
eta
pas
prin
cipa
is:
1 -
Com
puta
ro
valo
r da
fu
n
ode
tran
sfo
rma
o, a
qua
l tra
nsf
orm
aa
cha
vede
pesq
uis
a em
um
en
dere
o da
ta
bela
.
2 -
Con
side
ran
do qu
e du
as
ou
m
ais
ch
ave
s po
dem
ser
tran
sfo
rma
das
em
um
me
smo
e
nde
reo
deta
bela
,
ne
cess
rio
e
xist
iru
mm
to
do pa
ra lid
ar
com
colis
es.
Qu
alq
ue
r qu
e se
jaa
fun
o
detra
nsf
orm
a
o,
alg
um
as
colis
es
iro
o
corr
er
fata
lme
nte
, e
tais
co
lise
s t
mde
se
rre
solv
ida
sde
alg
um
afo
rma
.
M
esm
o qu
ese
obt
en
ha u
ma
fu
n
ode
tran
sfo
rma
o
qu
e
dist
ribu
a o
s re
gist
ros
de fo
rma
un
iform
e e
ntre
as
en
trada
s da
tabe
la,
exi
ste
u
ma
a
lta pr
oba
bilid
ade
deha
ver
colis
es.
AlgoritmoseEstruturade Dados II
-
Tran
sfo
rma
ode
Chav
e(H
ashi
ng)
O
para
doxo
doa
niv
ers
rio
(Fe
ller,
1968
, p.
33
),diz
que
e
mu
mgr
upo
de 23
ou
m
ais
pe
sso
as, jun
tas
ao
aca
so,
exis
te u
ma
cha
nce
ma
ior
doqu
e50
% de
que
2pe
sso
as
com
em
ore
m a
niv
ers
rio
no
me
smo
di
a.
As
sim
, se
fo
ru
tiliz
ada
u
ma
fu
n
ode
tran
sfo
rma
o
un
iform
e qu
e e
nde
rece
23ch
ave
s ra
nd
mic
as
em
um
a ta
bela
deta
ma
nho
365,
a
pro
babi
lida
dede
que
haja
colis
es
m
aio
rdo
que
50%
.
AlgoritmoseEstruturade Dados II
-
Tran
sfo
rma
ode
Chav
e(H
ashi
ng)
A
pro
babi
lida
dep
de se
inse
rirN
iten
s co
nse
cutiv
os
sem
co
liso
e
m u
ma
ta
bela
deta
ma
nho
M :
AlgoritmoseEstruturade Dados II
-
Tran
sfo
rma
ode
Chav
e(H
ashi
ng)
Al
gun
s va
lore
sde
p
para
di
fere
nte
s va
lore
sde
N
,
on
deM
=
36
5.N
p
10 0,
883
22 0,
524
23 0,
493
30 0,
303
Pa
ra N
pequ
eno
apr
oba
bilid
ade
ppo
dese
ra
pro
xima
da
por
p
N (N
1))/7
30 .
Por
exe
mpl
o,
para
N =
10
en
to
p
87,7%
.
AlgoritmoseEstruturade Dados II
-
Fun
es
deTr
ansf
orm
ao
Um
a fu
n
ode
tran
sfo
rma
o
de
ve m
ape
ar
cha
ves
em
inte
iros
den
trodo
inte
rva
lo[0.
.M
1],o
nde
M
ota
ma
nho
da
ta
bela
.
A
fun
o
detra
nsf
orm
a
oid
eal
aqu
ela
qu
e:
Se
jasi
mpl
es
de se
rco
mpu
tada
.
Pa
ra ca
da ch
ave
dee
ntra
da,
qua
lqu
er
um
ada
s
sad
as
poss
ve
is
igu
alm
en
te pr
ov
veld
eo
corr
er.
AlgoritmoseEstruturade Dados II
-
Mt
odo
m
ais
Usad
o
Us
ao
rest
o da
di
vis
o po
rM
.
h(K) =
K
mo
d M
ou
h(K) =
K
% M
(em
lin
gua
gem
C)
on
deK
u
min
teiro
co
rre
spo
nde
nte
ch
ave
.
AlgoritmoseEstruturade Dados II
-
Mt
odo
m
ais
Usad
o
Cu
idad
o na
e
sco
lha
dova
lor
de M
. M
de
vese
r u
mn
me
ropr
imo
,m
as
no
qu
alq
ue
rpr
imo
:de
vem
ser
evi
tado
s os
nm
ero
s pr
imo
s o
btid
os
apa
rtir
de
bi
j
on
deb
a
ba
se do
con
junto
deca
ract
ere
s(ge
ralm
en
teb
= 64
para
BCD
, 12
8pa
raAS
CII,
256
para
EBCD
IC,
ou
100
para
a
lgu
ns
cdi
gos
deci
ma
is),e
i e
js
o pe
que
no
s in
teiro
s.
AlgoritmoseEstruturade Dados II
-
Tran
sfo
rma
ode
Chav
es N
oN
um
ric
as
As
cha
ves
no
n
um
ric
as
deve
mse
rtra
nsf
orm
ada
s e
m n
me
ros:
n
on
me
rode
cara
cte
res
da ch
ave
.
Ch
ave
[i]co
rre
spo
nde
re
pre
sen
ta
oAS
CII d
o i-
sim
o
cara
cte
re da
ch
ave
.
p[i
] u
min
teiro
de u
mco
njun
tode
pe
sos
gera
dos
ale
ato
riam
en
te pa
ra1
i n
.
AlgoritmoseEstruturade Dados II
-
Tran
sfo
rma
ode
Chav
es N
oN
um
ric
as
Va
nta
gem
de se
usa
rpe
sos:
Do
is co
njun
tos
dife
ren
tes
de pe
sos
p1 [i]
e p2
[i],
1
i n
,
leva
adu
as
fun
e
sde
tran
sfo
rma
o
h1 (K
) e h2
(K
) di
fere
nte
s.
AlgoritmoseEstruturade Dados II
-
Tran
sfo
rma
ode
Chav
es N
oN
um
ric
as
Pr
ogr
am
a qu
e ge
rau
m pe
sopa
ra ca
da ca
ract
er
deu
ma
ch
ave
con
stitu
da
de n
cara
cte
res:
void
G
era
Peso
s(Tip
oPeso
sp)
{ /* G
era
va
lore
s ale
ato
rios
entre
1 e 10
.00
0 */
inti
;st
ruct
tim
eva
l sem
ente
;/*
Utiliz
ar
o te
mpo
com
o se
mente
pa
raa
funca
o sr
and()
*/
getti
meofd
ay(&
sem
ente
,N
ULL);
srand((
int)(
sem
ente
.tv
_se
c +
10
0000
0*se
men
te.tv
_use
c));
for
(i = 0;
i
Prox-
>Ite
m.Ch
ave
,si
zeof(T
ipoCh
ave
)) ))
Ap=
Ap->
Prox;
if (!s
trncm
p(Ch,
Ap->
Prox-
>Ite
m.Ch
ave
,si
zeof(T
ipoCh
ave
)))
retu
rn Ap
;els
e re
turn
N
ULL;
/*
Pesq
uis
a se
m su
cess
o*/
}}
AlgoritmoseEstruturade Dados II
-
Ope
ra
esdo
Dic
ion
rio
Us
ando
List
as En
cade
adas
void
Inse
re(T
ipo
Item
x,Ti
poPe
sos
p,Ti
poD
icio
na
rioT)
{ if
(Pe
squ
isa
(x.Ch
ave
, p,
T)
=
= N
ULL)
Ins(x
, &T
[h(x.
Cha
ve, p)]
);e
lse
prin
tf("R
egi
stro
ja
e
sta
pr
ese
nte
\n");
}
AlgoritmoseEstruturade Dados II
-
Ope
ra
esdo
Dic
ion
rio
Us
ando
List
as En
cade
adas
void
R
etir
a(T
ipo
Item
x,Ti
poPe
sos
p,Ti
poD
icio
na
rioT)
{ Ap
on
tado
r Ap
;
Ap=
Pesq
uis
a(x.
Cha
ve, p,
T)
;
if (A
p=
= N
ULL)
pr
intf("
Re
gist
ro n
ao
e
sta
pr
ese
nte
\n");
els
e R
et(A
p, &T
[h(x.
Cha
ve, p)]
, &x
);}
AlgoritmoseEstruturade Dados II
-
An
lis
e
As
sum
indo
qu
e qu
alq
ue
rite
m do
con
junto
tem
igu
al
pro
babi
lida
dede
se
re
nde
rea
do pa
ra qu
alq
ue
r e
ntra
dade
T,
en
to
oco
mpr
ime
nto
e
spe
rado
deca
da lis
ta en
cade
ada
N
/M,
on
deN
repr
ese
nta
on
me
rode
regi
stro
s n
a ta
bela
e M
o
tam
an
ho da
ta
bela
.
Lo
go:
as
ope
ra
es
Pesq
uis
a,
Inse
ree
Re
tira
cu
sta
m
O(1
+ N
/M )o
pera
e
s e
m m
dia
,o
nde
aco
nst
an
te1
repr
ese
nta
o te
mpo
para
e
nco
ntra
ra
en
trada
n
a ta
bela
e N
/M
o te
mpo
para
pe
rco
rre
ra
lista
.
Para
va
lore
sde
M
prx
imo
sde
N
, o
te
mpo
se
to
rna
con
sta
nte
,is
to,
inde
pen
den
tede
N
.
AlgoritmoseEstruturade Dados II
-
Ende
rea
men
to A
bert
o
Qu
ando
onm
ero
dere
gist
ros
ase
rem
arm
aze
nado
s na
tabe
la pu
der
ser
previ
am
ente
est
imado
,ent
o no
have
rnece
ssid
ade
deusa
r apo
nta
dore
s pa
ra
arm
aze
nar
os
regi
stro
s.
Ex
iste
m v
rios
mt
odo
s pa
ra arm
aze
nar
Nre
gist
ros
em
um
a ta
bela
deta
manho
M >
N
,os
quais
util
izam
os
luga
res
vazi
os
na pr
pria
ta
bela
pa
ra re
solv
er
as
colis
es.
(K
nuth
, 19
73, p.
518)
AlgoritmoseEstruturade Dados II
-
Ende
rea
men
to A
bert
o
N
o En
dere
am
ento
a
bert
oto
das
as
cha
ves
so
arm
aze
na
das
na
pr
pria
ta
bela
,se
mo
uso
dea
pon
tado
res
exp
lcito
s.
Ex
iste
m v
rias
pro
post
as
para
ae
sco
lha
delo
caliz
a
es
alte
rna
tiva
s. A
ma
issi
mpl
es
ch
am
ada
de ha
shin
g lin
ear
,
on
dea
posi
o
h j
na
ta
bela
dada
por:
h j=
(h(
x) +
j) m
od
M,
para
1
j M
1.
AlgoritmoseEstruturade Dados II
-
Exem
plo
Se
a
i-
sim
a le
trado
alfa
beto
re
pre
sen
tada
pe
lo n
me
roi e
a fu
n
ode
tran
sfo
rma
o
h(Cha
ve) =
Cha
ve%
M
u
tiliz
ada
pa
raM
=
7,
e
nt
oo
resu
ltado
da
in
ser
oda
sch
ave
sL
U N
E
Sn
a
tabe
la,
usa
ndo
hash
ing
line
ar
para
re
solv
er
colis
es
m
ost
rado
a
baix
o.
AlgoritmoseEstruturade Dados II
-
Exem
plo
Po
r e
xem
plo
:
h(L) =
h(1
2) =
5,
h(U
) =
h(2
1) =
0,
h(N ) =
h(1
4) =
0,
h(E
) = h(5
) = 5,
h(S) =
h(1
9) =
5.
AlgoritmoseEstruturade Dados II
-
Estr
utu
rado
Dic
ion
rio
Us
ando
Ende
rea
men
to A
bert
o
#defin
eVa
zio "!!!
!!!!!!
!"#d
efin
eR
etir
ado
"**********"
#defin
e M
7
#defin
e n 11
/*
Tam
anho
da
ch
ave
*/
AlgoritmoseEstruturade Dados II
-
Estr
utu
rado
Dic
ion
rio
Us
ando
Ende
rea
men
to A
bert
oty
pede
funsi
gned
int A
ponta
dor;
type
defc
har
Tipo
Chave
[n];
type
defu
nsi
gned
Tipo
Peso
s[n];
type
def s
truct
Ti
poIte
m{
/*outro
s co
mpo
nente
s*/
Tipo
Chave
Ch
ave
;
}Tip
oIte
m;
type
defu
nsi
gned
int I
ndi
ce;
type
def T
ipoIte
m Ti
poD
icio
nario
[M];
AlgoritmoseEstruturade Dados II
-
Ope
ra
esdo
Dic
ion
rio
Us
ando
Ende
rea
men
to A
bert
o
void
Inic
ializ
a(T
ipo
Dic
ion
ario
T)
{ in
ti;
for
(i = 0;
i Ch
ave
< (*p
)->R
eg.
Cha
ve) {
Pesq
uis
a(x,
&(
*p)-
>Es
q);re
turn
;} if (
x->
Cha
ve>
(*p
)->R
eg.
Cha
ve)
Pe
squ
isa
(x, &(
*p)-
>D
ir);e
lse
*x
= (*p
)->R
eg;
} AlgoritmoseEstruturade Dados II
-
Pro
cedi
men
to pa
ra In
serir
n
a r
vo
re
AlgoritmoseEstruturade Dados II
At
ingi
ru
ma
pon
tado
r n
ulo
e
mu
mpr
oce
sso
depe
squ
isa
sign
ifica
um
a pe
squ
isa se
m su
cess
o.
O
apo
nta
dor
nu
lo a
tingi
do
opo
nto
dein
ser
o.
-
Pro
cedi
men
to pa
ra In
serir
n
a r
vo
re
AlgoritmoseEstruturade Dados II
void
In
sere
(Re
gist
rox,
Apo
nta
dor
*p)
{ if
(*p =
= N
ULL)
{
*p
= (A
pon
tado
r)ma
lloc(s
ize
of(N
o));
(*p)->
Re
g=
x;
(*p)->
Esq
= N
ULL;
(*p
)->D
ir =
N
ULL;
retu
rn;
} if (x.
Cha
veR
eg.
Cha
ve) {
Inse
re(x,
&(
*p)-
>Es
q);
retu
rn;
} if (x.
Cha
ve>
(*p
)->R
eg.
Cha
ve)In
sere
(x, &(
*p)-
>D
ir);e
lse
pr
intf("
Erro
:R
egi
stro
ja
exi
ste
n
a a
rvo
re\n
");
}
-
Pro
cedi
men
tos
para
In
icia
lizar
e Cr
iar
a
rvo
re AlgoritmoseEstruturade Dados II
void
Inic
ializ
a(A
pon
tado
r*D
icio
na
rio)
{ *D
icio
na
rio=
N
ULL;
}
-
Pro
cedi
men
to pa
ra R
etira
rx
da r
vo
re
Algu
ns
com
en
trio
s:
1. A
retir
ada
de u
mre
gist
ro n
o
to
sim
ple
squ
an
toa
inse
ro
.
2. Se
o
n
que
co
nt
mo
regi
stro
a se
rre
tira
do po
ssu
ino
mx
imo
um
desc
en
den
te
ao
pera
o
si
mpl
es.
3. N
oca
sodo
n
con
ter
dois
de
scen
den
tes
ore
gist
ro
a se
rre
tira
do de
vese
rpr
ime
iro:
su
bstit
ud
o pe
lo re
gist
ro m
ais
di
reita
n
a su
brv
ore
esq
ue
rda
;
o
u pe
lo re
gist
ro m
ais
e
squ
erd
a n
a su
brv
ore
di
reita
.
AlgoritmoseEstruturade Dados II
-
Exem
plo
da
R
etira
dade
u
mR
egis
tro
da r
vo
re
As
sim
:pa
ra re
tira
ro
regi
stro
com
cha
ve5
da r
vore
ba
sta
troc
-lo
pelo
re
gist
roco
mch
ave
4o
u pe
lo re
gist
roco
mch
ave
6, e
en
to
re
tira
ro
n
que
re
cebe
uo
regi
stro
com
cha
ve5.
AlgoritmoseEstruturade Dados II
-
Exem
plo
da
R
etira
dade
u
m
Reg
istr
o da
r
vo
re
void
Ante
cess
or(A
pon
tado
rq,
Apo
nta
dor
*r)
{ if
( (*r)-
>D
ir !=
N
ULL)
{An
tece
sso
r(q, &(
*r)-
>D
ir);re
turn
;} q->
Re
g=
(*r
)->R
eg;
q =
*r;
*r
= (*r
)->Es
q;fre
e(q)
;}
AlgoritmoseEstruturade Dados II
-
Exem
plo
da
R
etira
dade
u
mR
egis
tro
da r
vo
revo
idR
etir
a(R
egi
stro
x,Ap
onta
dor
*p)
{Ap
onta
dor
Aux;
if (*p
=
= NU
LL) {
prin
tf("Er
ro:
Regi
stro
nao est
a na arv
ore
\n");
retu
rn;
} if (x.
Chave
< (*p
)->R
eg.
Chave
) {
Ret
ira(x,
&(
*p)-
>Es
q);
retu
rn;
} if (x.
Chave
> (*p
)->R
eg.
Chave
){ Re
tira(x,
&(
*p)-
>D
ir);
retu
rn;
}AlgoritmoseEstruturade Dados II
-
Exem
plo
da
R
etira
dade
u
mR
egis
tro
da r
vo
reif
((*p)-
>D
ir =
= N
ULL)
{
Aux
= *p;
*p
= (*p
)->Es
q;fre
e(A
ux);
retu
rn;
} if ((*p
)->Es
q!=
N
ULL)
{ An
tece
sso
r(*p,
&(
*p)-
>Es
q);re
turn
;} Au
x =
*p;
*p
= (*p
)->D
ir;fre
e(A
ux);
} AlgoritmoseEstruturade Dados II
-
Exem
plo
da
R
etira
dade
u
mR
egis
tro
da r
vo
re
Obs
.: pr
oc.
recu
rsivo
An
tece
sso
r s
a
tiva
do qu
ando
o n
qu
e co
nt
m re
gist
roa
se
rre
tira
do po
ssu
i2
desc
ende
nte
s.
Solu
o
u
sada
po
rW
irth,
19
76, p.
211. Algo
ritmoseEstruturade Dados II
-
Ou
tro
Ex
empl
ode
Ret
irada
deN
AlgoritmoseEstruturade Dados II
-
Ou
tro
Ex
empl
ode
Ret
irada
deN
AlgoritmoseEstruturade Dados II
-
Cam
inha
men
toCe
ntr
al
Ap
s co
nst
rud
aa
rvo
re,
pode
ser
nece
ssr
io pe
rcorr
er
todo
os
regi
stro
s qu
e co
mp
em
ata
bela
ou a
rquiv
o.
Ex
iste
m
ais
deum
a ord
em
deca
min
ham
ento
em
rvo
res,
mas
am
ais
t
il
ach
am
ada
ord
em
deca
min
ham
ento
centra
l.
Oca
min
ham
ento
centra
l m
ais
be
m exp
ress
o em
term
os
recu
rsiv
os:
1.ca
min
ha na su
brv
ore
esq
uerd
a na ord
em
centra
l;2.
visi
taa
raiz
;3.
cam
inha
na su
brv
ore
di
reita
na ord
em
centra
l.
Uma ca
ract
ers
tica im
porta
nte
doca
min
ham
ento
centra
l
que os
ns
s
o vi
sita
dos
de fo
rma
ord
ena
da.
AlgoritmoseEstruturade Dados II
-
Cam
inha
men
toCe
ntr
al
Pe
rco
rre
ra
rvo
re:
u
san
do ca
min
ham
en
toce
ntra
lre
cupe
raa
sch
ave
s n
a o
rde
m1,
2,
3,
4,
5,
6
e 7.
AlgoritmoseEstruturade Dados II
-
Cam
inha
men
toCe
ntr
al
O
proce
dim
ento
Cen
tral
most
rado
aba
ixo
:
void
Ce
ntra
l(Apo
nta
dor
p){
if (p
==
N
ULL)
retu
rn;
Centra
l(p->
Esq);
prin
tf("%
ld\n
", p-
>R
eg.
Chave
);Ce
ntra
l(p->
Dir);
}
AlgoritmoseEstruturade Dados II
-
An
lis
e
O
nm
ero
deco
mpa
ra
es
em
u
ma
pe
squ
isa
com
suce
sso
:
me
lho
r ca
so:
C(n
) = O
(1)
pio
r ca
so:
C(n
) = O
(n)
caso
m
dio
: C(
n) =
O
(log
n)
O
te
mpo
de
exe
cu
odo
sa
lgo
ritm
os
para
r
vore
s bi
nr
ias
depe
squ
isa
de
pen
dem
m
uito
dofo
rma
toda
sr
vore
s.
AlgoritmoseEstruturade Dados II
-
An
lis
e
1. Pa
rao
bte
ro
pio
r ca
so ba
sta
qu
ea
sch
ave
s se
jam
inse
rida
s e
m o
rdem
cr
esc
en
te o
u de
cre
sce
nte
.
Nes
te ca
soa
rvo
re re
sulta
nte
u
ma
lis
talin
ea
r,cu
jo n
mer
o m
dio
deco
mpa
ra
es
(n +
1)/
2.
2. Pa
rau
ma
r
vore
depe
squ
isa
a
lea
toria
on
me
ro
esp
era
dode
com
para
es
pa
ra re
cupe
rar
um
regi
stro
qu
alq
ue
r
cerc
ade
1,
39 lo
g n
,a
pen
as39
%pi
or
que
ar
vore
co
mpl
eta
men
te ba
lan
cea
da.
AlgoritmoseEstruturade Dados II