Upload
filipeot3240
View
212
Download
0
Embed Size (px)
DESCRIPTION
Cap 5
Citation preview
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