SlideShare uma empresa Scribd logo
1 de 69
Prof. Kenia Kodel
Extrato
   Organização de Arquivos
   Arquivos Sequenciais Desordenados
   Arquivos Sequenciais Ordenados Fisicamente
   Arquivos Sequenciais Ordenados por Link
   Arquivos Diretos Mantidos por Dicionário de Dados
   Arquivos Diretos Mantidos por Hashing
   Arquivos Sequenciais Indexados
   Recuperação de Chave Secundária – Multilista
   Recuperação de Chave Secundária – Arquivos Invertidos
   Recuperação de Chave Secundária – Árvores de Assinaturas
   Estruturas de Busca em Texto

                 UFS - DComp - Prof. Kenia Kodel               2
O que é busca
             em texto?



UFS - DComp - Prof. Kenia Kodel   3
Busca em Texto
 Busca em texto, ou pesquisa digital, ou
 ‘casamento de padrões’, ou casamento
 de cadeias, consiste na pesquisa de uma
 subsequência de símbolos numa
 sequência destes (símbolos).



           UFS - DComp - Prof. Kenia Kodel   4
Busca em Texto
Pode ter como objetivo encontrar todas
as ocorrências, ou somente a primeira,
de uma dada subsequência numa dada
sequência; a exemplo, de um palavra
em um texto.


          UFS - DComp - Prof. Kenia Kodel   5
Onde/Quando
                  se aplica
                  busca em
                   texto?



UFS - DComp - Prof. Kenia Kodel   6
Busca em Texto
  A busca em texto é útil para
  gerenciamento de editores de textos,
  dicionários, recuperação de dados,
  manipulação de símbolos.



         UFS - DComp - Prof. Kenia Kodel   7
Como efetuar
                   busca em
                    texto?



UFS - DComp - Prof. Kenia Kodel   8
Busca em Texto
Na busca digital, diferente do que foi visto
até então, a chave não é tratada como
um elemento único, indivisível. Assume-se
que cada chave é constituída de um
conjunto de caracteres ou dígitos.



           UFS - DComp - Prof. Kenia Kodel     9
Busca em Texto
Assim, como a chave não é tratada como
elemento único, ao invés de se comparar a
chave procurada com as chaves do conjunto
armazenado, a comparação é efetuada
caractere a caractere, dentre os caracteres
que compõem as chaves.


          UFS - DComp - Prof. Kenia Kodel     10
Busca em Texto
 Para efetuar busca em texto, é possível explorar:

         Algoritmos
   KMP (Knuth, Moris e Pratt)
     BM (Boyer-Moore)
         Rabin-Karp
                                              Estruturas da Dados

                                                       Trie
                                                  Árvore Digital



            UFS - DComp - Prof. Kenia Kodel                         11
TRIE         Termo proveniente da palavra inglesa retrieval
       (recuperação), e corresponde a uma estrutura usada para
       recuperação de dados – de subsequência, em sequência.
   1      2     3     4       ...9      10
                                                   Trie
                            marco
a aldo   davi                                     a  b          d       g m         p  r
b  3                                                                                
d  2                                              l    e         a  i   i   a        e   u
e               4
                                                                                   
g  gil
i        10                                       d    l    t   v   r   l   r        t   i
l                   bel                               λ              λ              λ
m   5                                             o          o   i   o       c        o
n                                     dino
p peto                                            λ          λ   λ   λ               λ
q                                                                            o
r  rui                                 diro                                  
s                           marcos
                                                                                 s
t                   beto
                                                                             λ    λ

                    UFS - DComp - Prof. Kenia Kodel                                       12
TRIE                                 Qual a pronúncia
                                        correta?
   1      2     3     4       ...9      10
                                                   Trie
                            marco
a aldo   davi                                     a  b          d       g m         p  r
b  3                                                                                
d  2                                              l    e         a  i   i   a        e   u
e               4
                                                                                   
g  gil
i        10                                       d    l    t   v   r   l   r        t   i
l                   bel                               λ              λ              λ
m   5                                             o          o   i   o       c        o
n                                     dino
p peto                                            λ          λ   λ   λ               λ
q                                                                            o
r  rui                                 diro                                  
s                            marco
                              s
                                                                                 s
t                   beto
                                                                             λ    λ

                    UFS - DComp - Prof. Kenia Kodel                                       13
TRIE
  São estruturas em que as chaves são tratadas caractere
  a caractere. E podem ser implementadas por meio de
  estruturas sequenciais ou dinâmicas.
   1      2     3     4       ...9      10
                                                   Trie
                            marco
a aldo   davi                                     a  b          d       g m         p  r
b  3                                                                                
d  2                                              l    e         a  i   i   a        e   u
e               4
                                                                                   
g  gil
i        10                                       d    l    t   v   r   l   r        t   i
l                   bel                               λ              λ              λ
m   5                                             o          o   i   o       c        o
n                                     dino
p peto                                            λ          λ   λ   λ               λ
q                                                                            o
r  rui                                 diro                                  
s                            marco
                              s
                                                                                 s
t                   beto
                                                                             λ    λ

                    UFS - DComp - Prof. Kenia Kodel                                       14
Construindo uma                       1           2       3        4         5   6
trie estática para
armazenamento
                             a
das palavras:
                             b
1.davi
                             d
2.aldo
                             e
3.beto                       g
4.diro                       i
5.peto                       l
6.rui                        m
7.bel                        n
8.gil                        p
9.marco                      q
10.marcos                    r
                             s
11.dino
                             t
Reserva-se:
                                          Para economia de espaço
                                          algumas letras foram suprimidas.
                     UFS - DComp - Prof. Kenia Kodel                                 15
Trie Estática               1           2    3   4   5   6

                   a
                   b
                   d
                   e
                   g
                   i
                   l
                   m
Onde inserir       n
  davi?            p
                   q
                   r
                   s
                   t




           UFS - DComp - Prof. Kenia Kodel                   16
Construindo uma
trie estática para                    1           2    3   4   5   6
armazenamento
das palavras:
                             a
1.davi
                             b
2.aldo                       d      davi
3.beto                       e
4.diro                       g
5.peto                       i
6.rui                        l
7.bel                        m
8.gil                        n
9.marco                      p
                             q
10.marcos
                             r
11.dino
                             s

 Inserir   aldo.             t



                     UFS - DComp - Prof. Kenia Kodel                   17
Construindo uma
trie estática para                    1           2    3   4   5   6
armazenamento
das palavras:
                             a      aldo
1.davi                       b
2.aldo                       d
                                    davi
3.beto                       e
4.diro                       g
5.peto                       i
6.rui                        l
7.bel                        m
8.gil                        n
                             p
9.marco
                             q
10.marcos
                             r
11.dino
                             s
                             t
 Inserir   beto.
                     UFS - DComp - Prof. Kenia Kodel                   18
Construindo uma
trie estática para                    1           2    3   4   5   6
armazenamento
das palavras:
                             a      aldo
1.davi                       b      beto
2.aldo                       d
                                    davi
3.beto                       e
4.diro                       g
5.peto                       i
6.rui                        l
7.bel                        m
8.gil                        n
                             p
9.marco
                             q
10.marcos
                             r
11.dino
                             s
                             t
  Inserir   diro.
                     UFS - DComp - Prof. Kenia Kodel                   19
Construindo uma
trie estática para                    1           2    3   4   5   6
armazenamento
das palavras:
                             a      aldo        davi
1.davi                       b      beto
2.aldo                       d
3.beto                                2
                             e
4.diro                       g
5.peto                       i                  diro
6.rui                        l
7.bel                        m
8.gil                        n
                             p
9.marco
                             q
10.marcos
                             r
11.dino
                             s
                             t
 Inserir   peto.
                     UFS - DComp - Prof. Kenia Kodel                   20
Construindo uma
trie estática para                    1           2    3   4   5   6
armazenamento
das palavras:
                             a      aldo        davi
1.davi                       b      beto
2.aldo                       d
3.beto                                2
                             e
4.diro                       g
5.peto                       i                  diro
6.rui                        l
7.bel                        m
8.gil                        n
                             p
9.marco                             peto
                             q
10.marcos
                             r
11.dino
                             s
                             t
   Inserir   rui.
                     UFS - DComp - Prof. Kenia Kodel                   21
Construindo uma
trie estática para                    1           2    3   4   5   6
armazenamento
das palavras:
                             a      aldo        davi
1.davi                       b      beto
2.aldo                       d
3.beto                                2
                             e
4.diro                       g
5.peto                       i                  diro
6.rui                        l
7.bel                        m
8.gil                        n
                             p
9.marco                             peto
                             q
10.marcos
                             r        rui
11.dino
                             s
                             t
  Inserir   bel.
                     UFS - DComp - Prof. Kenia Kodel                   22
Construindo uma
trie estática para                    1           2    3    4     5   6
armazenamento
das palavras:
                             a      aldo        davi
1.davi                       b
2.aldo
                                      3
                             d
3.beto                                2
                             e
                                                       4
4.diro                       g
5.peto                       i                  diro
6.rui                        l
                                                           bel
7.bel                        m
8.gil                        n
                             p
9.marco                             peto
                             q
10.marcos
                             r        rui
11.dino
                             s
                             t
   Inserir   gil.                                          beto


                     UFS - DComp - Prof. Kenia Kodel                      23
Construindo uma
trie estática para                    1           2    3    4     5   6
armazenamento
das palavras:
                             a      aldo        davi
1.davi                       b
2.aldo
                                      3
                             d
3.beto                                2
                             e
                                                       4
4.diro                       g       gil
5.peto                       i                  diro
6.rui                        l
                                                           bel
7.bel                        m
8.gil                        n
                             p
9.marco                             peto
                             q
10.marcos
                             r        rui
11.dino
                             s
                             t
Inserir   marco.                                           beto


                     UFS - DComp - Prof. Kenia Kodel                      24
Construindo uma
trie estática para                    1           2    3    4     5   6
armazenamento
das palavras:
                             a aldo             davi
1.davi                       b
2.aldo
                                3
                             d
3.beto                          2
                             e
                                                       4
4.diro                       g  gil
5.peto                       i                  diro
6.rui                        l
                                                           bel
7.bel                        m marco
8.gil                        n
                             p
9.marco                        peto
                             q
10.marcos
                             r  rui
11.dino
                             s
Inserir marcos e             t
      dino.                                                beto


                     UFS - DComp - Prof. Kenia Kodel                      25
Construindo uma
trie estática para                    1           2    3    4      ...9    10
armazenamento
das palavras:                                                     marco
                              a
1.davi                              aldo        davi
                              b
2.aldo
                                      3
                              d
3.beto                                2
                              e
                                                       4
4.diro                        g      gil
5.peto                        i                  10
6.rui                         l
                                                           bel
7.bel                         m
                                       5
8.gil                         n                                            dino
                              p
9.marco                             peto
                              q
10.marcos
                              r
11.dino                               rui                                  diro
                              s                                   marcos
                              t
                                                           beto


                     UFS - DComp - Prof. Kenia Kodel                              26
Trie Estática               1           2    3    4      ...9    10
                                                        marco
                   a      aldo        davi
                   b       3
                   d       2
                   e                         4
                   g       gil
                   i                   10
                   l                             bel
                   m        5
                   n                                             dino
Como efetuar       p      peto
 consulta?         q
                   r       rui                                   diro
                   s                                    marcos
                   t                             beto


           UFS - DComp - Prof. Kenia Kodel                              27
Trie Estática                1           2    3    4      ...9    10
                                                         marco
                    a      aldo        davi
                    b       3
                    d       2
                    e                         4
                    g       gil
                    i                    6
                    l                             bel
                    m        5
                    n                                             dino
Como, através       p      peto
 desta, por         q
  exemplo,          r       rui                                   diro
 manter um          s                                    marcos
 dicionário?        t                             beto


            UFS - DComp - Prof. Kenia Kodel                              28
Trie Estática                  1           2    3    4      ...9    10
                                                           marco
                      a      aldo        davi
                      b       3
                      d       2
                      e                         4
                      g       gil
                      i                    6
                      l                             bel
                      m        5
                      n                                             dino
  Esta estrutura      p      peto
     facilita a       q
implementação         r       rui                                   diro
    do “auto-         s                                    marcos
   completar”?        t                             beto


              UFS - DComp - Prof. Kenia Kodel                              29
Trie Estática                  1           2    3    4      ...9    10
                                                           marco
                      a      aldo        davi
                      b       3
                      d       2
                      e                         4
                      g       gil
                      i                    6
                      l                             bel
                      m        5
                      n                                             dino
    Como              p      peto
 dimensionar          q
esta estrutura?       r       rui                                   diro
                      s                                    marcos
                      t                             beto


              UFS - DComp - Prof. Kenia Kodel                              30
Construindo
uma trie             Trie

dinâmica          a         b                d
(cada letra é                              
mantida
                  l          e                a
numa
variável                                   

dinâmica)         d          t                v

para                                       
armazenar:        o          o                i
davi, aldo,
                  λ          λ                λ
beto, diro,
peto, rui, bel,
gil , marco,
                                  Há aterramento também dos ponteiros “laterais”.
marcos, dino.


                      UFS - DComp - Prof. Kenia Kodel                               31
Construindo
                      Trie
uma trie          

dinâmica          a         b                d

(cada letra é                              
mantida           l          e                a
numa variável
                                           
dinâmica)
                  d          t                v
para
armazenar:                                 

davi, aldo,       o          o                i
beto, diro,       λ          λ                λ
peto, rui, bel,
gil , marco,
marcos, dino.
Inserir diro,
peto e rui?
                      UFS - DComp - Prof. Kenia Kodel   32
Construindo
                       Trie
uma trie          

dinâmica          a          b                d            p      r

(cada letra é                                                   
mantida           l           e                a       i   e       u
numa variável
                                                               
dinâmica)
                  d           t                v        r   t       i
para
armazenar:                                                     λ

davi, aldo,       o           o                i        o   o
beto, diro,       λ           λ                λ        λ   λ
peto, rui, bel,
gil , marco,
marcos, dino.



                      UFS - DComp - Prof. Kenia Kodel                   33
Construindo
uma trie                  Trie

dinâmica              a          b                d            p      r
(cada letra é                                                       
mantida numa
                      l           e                a        i   e       u
variável                                               

dinâmica) para                                                     

armazenar:            d           t                v        r   t       i

davi, aldo,                                                        λ
beto, diro,
                      o           o                i        o   o
peto, rui, bel, gil
                      λ           λ                λ        λ   λ
, marco,
marcos, dino.
Como, inserir
bel, gil, marco,
marcos e dino?
                          UFS - DComp - Prof. Kenia Kodel                   34
Construindo           Trie
uma trie          a          b                d            g      m           p      r
dinâmica
(cada letra é                                                                     

mantida           l           e                a       i   i       a           e       u

numa variável                                                                    

dinâmica)         d           l      t        v        r   l       r           t       i
para
                             λ                          λ                         λ
armazenar:
                  o                   o        i        o           c           o
davi, aldo,
beto, diro,       λ                   λ        λ        λ                      λ

peto, rui, bel,                                                     o
gil , marco,                                                        
marcos, dino.
                                                                           s

                                                                    λ       λ

                      UFS - DComp - Prof. Kenia Kodel                                       35
Trie Dinâmica
                 Trie

             a          b                d            g      m           p      r

                                                                             

             l           e                a       i   i       a           e       u

                                                                            

             d           l      t        v        r   l       r           t       i

                        λ                          λ                         λ


  Como       o                   o        i        o           c           o


“declarar”   λ                   λ        λ        λ                      λ

cada nó?                                                       o

                                                               

                                                                      s

                                                               λ       λ

                 UFS - DComp - Prof. Kenia Kodel                                       36
Trie Dinâmica           Trie

                     a          b                d            g      m           p      r

                                                                                     

                     l           e                a       i   i       a           e       u
Composição
de cada nó.                                                                         

           próxima   d           l      t        v        r   l       r           t       i
caracter
           palavra
 próximo carater                λ                          λ                         λ

                     o                   o        i        o           c           o

                     λ                   λ        λ        λ                      λ

                                                                       o

                                                                       

                                                                              s

                                                                       λ       λ

                         UFS - DComp - Prof. Kenia Kodel                                       37
Trie Dinâmica
               Trie

           a          b                d            g      m           p      r

                                                                           

           l           e                a       i   i       a           e       u

                                                                          

           d           l      t        v        r   l       r           t       i

                      λ                          λ                         λ
 Como      o                   o        i        o           c           o
efetuar
           λ                   λ        λ        λ                      λ
consulta
                                                             o
 nesta?
                                                             

                                                                    s

                                                             λ       λ

               UFS - DComp - Prof. Kenia Kodel                                       38
Trie Dinâmica      Trie

                 a          b                d            g      m           p      r

                                                                                 

                 l           e                a       i   i       a           e       u

                                                                                

                 d           l      t        v        r   l       r           t       i

                            λ                          λ                         λ
    Como,        o                   o        i        o           c           o
através desta,
                 λ                   λ        λ        λ                       λ
 implementar                                                       

  dicionário?                                                      o

                                                                   

                                                                          s

                                                                   λ       λ

                     UFS - DComp - Prof. Kenia Kodel                                       39
Trie Dinâmica
                 Trie

             a          b                d            g      m           p      r

                                                                             

             l           e                a       i   i       a           e       u

                                                                            

             d           l      t        v        r   l       r           t       i

                        λ                          λ                         λ

             o                   o        i        o           c           o

             λ                   λ        λ        λ                      λ


Estrutura útil também para                                     o

implementação de casamento                                     
aproximado de cadeia – quando o
                                                                       s
usuário da aplicação não tem domínio                               

exato da chave de busca.                                       λ       λ

                 UFS - DComp - Prof. Kenia Kodel                                       40
Exercício

Construir trieS (estática e dinâmica) para
manter: pinha, jaca, caju, coco, açai, caja
e pinhao.




          UFS - DComp - Prof. Kenia Kodel     41
Exercício
Que implementação da trie apresenta
melhor desempenho: a estática ou a
dinâmica? Justifique: (a) em velocidade
de processamento, (b) em espaço de
armazenamento


         UFS - DComp - Prof. Kenia Kodel   42
Exercício
Descrever a implementação do recurso
auto-completar a partir de palavras
mantidas em tries.




        UFS - DComp - Prof. Kenia Kodel   43
Árvore Digital de Pesquisa
                                                              Uma árvore digital
                                                             para um alfabeto S
                                                              com m caracteres
 a       b                                                             (com itens
                                  d
                                                              ordenáveis) é uma
         e                   a                     i        árvore m-ária T, não
                                                                    vazia, tal que:
 d   l       t               v        n                r
                                                           1. Se um nó qualquer
                                                            x é o i-ésimo filho de
 o           o               i        o                o
                                                                 seu pai, então x
                                                               corresponde ao i-
                                                                   ésimo item do
                                                               alfabeto S, sendo
                                                                         1<=i<=m.
                 UFS - DComp - Prof. Kenia Kodel                               44
Árvore Digital de Pesquisa
                                                               Uma árvore digital
                                                              para um alfabeto S
                                                               com m caracteres
 a       b                                                 (com itens ordenáveis)
                                  d
                                                           é uma árvore m-ária T,
         e                   a                     i           não vazia, tal que:
             t                                                2. Para cada nó x, a
 d   l                       v        n                r
                                                             sequência de dígitos
                                                           definida pelo caminho
 o           o               i        o                o
                                                           desde a raiz de T até x
                                                            corresponde no todo,
                                                              ou em parte, a uma
                                                               chave de pesquisa.

                 UFS - DComp - Prof. Kenia Kodel                               45
Árvore Digital de Pesquisa
  a          b                                             m       p       r
                                     d

             e                  a                  i       a           e       u
   l

       l          t             v        n             r   r           t       i
  d

  o               o              i       o             o   c           o


                                                           o
           Como inserir: eva,
           tel, marcus e bela?                                 s

                 UFS - DComp - Prof. Kenia Kodel                                   46
Árvore Digital de Pesquisa
  a          b                                             m       p       r
                                     d

             e                  a                  i       a           e       u
   l

       l          t             v        n             r   r           t       i
  d

  o               o              i       o             o   c           o


                                                           o
            Como efetuar
           consulta nesta?                                     s

                 UFS - DComp - Prof. Kenia Kodel                                   47
Árvore Digital de Pesquisa
  a           b                                             m       p       r
                                      d

              e                  a                  i       a           e       u
   l

       l           t             v        n             r   r           t       i
  d

  o                o              i       o             o   c           o


                                                            o
           Como, a partir desta,
           pode ser implementado                                s
           um dicionário?
                  UFS - DComp - Prof. Kenia Kodel                                   48
Exercício

Construir árvore digital para manter: pinha,
jaca, caju, coco, açai, caja e pinhao.




          UFS - DComp - Prof. Kenia Kodel      49
Exercício

Descrever a operação de consulta, a uma
determinada palavra, numa árvore digital
de pesquisa.



         UFS - DComp - Prof. Kenia Kodel   50
Exercício

Elaborar declaração de uma árvore digital
de pesquisa, considerando o nosso
alfabeto.



          UFS - DComp - Prof. Kenia Kodel   51
Árvore Digital de Pesquisa
Como estrutura de busca em
                                                  Árvore digital de pesquisa
texto, há ainda as árvores
                                                  com os dados: 28(011100)
digitais binárias de pesquisa.                      17(010001) 30(011110)
Estas são compostas com                             27(011011) 40(101000)
base no código binário                             12(001100) 18(010010)
correspondente às chaves de
pesquisas.         Ou     seja,                              28
corresponde a uma árvore                                    17             40
digital de pesquisa cujo                          12             30
alfabeto apresenta somente                             18             27
dois itens.

                UFS - DComp - Prof. Kenia Kodel                                 52
Árvore Digital de Pesquisa
   Construindo uma
                                   28
   árvore digital de
   pesquisa com os
  dados: 28(011100)
17(010001) 30(011110)
27(011011) 40(101000)
      12(001100)
      18(010010)
O primeiro dado inserido pode ser mantido na raiz da
árvore. Mas há autores que consideram que a raiz da
árvore não armazena dados, nem corresponde a
qualquer dígito/dado.
              UFS - DComp - Prof. Kenia Kodel     53
Árvore Digital de Pesquisa
 Construindo uma árvore                               28
 digital de pesquisa com                         17
   os dados: 28(011100)
  17(010001) 30(011110)
  27(011011) 40(101000)
  12(001100) 18(010010)


A partir da segunda entrada, analisa-se a composição
binária da chave, de primeiro ao último bit. Se o bit for 0
segue para esquerda da estrutura, se 1, pela direita.

               UFS - DComp - Prof. Kenia Kodel             54
Árvore Digital de Pesquisa
Construindo uma árvore
digital de pesquisa com                               28

  os dados: 28(011100)                           17
 17(010001) 30(011110)
 27(011011) 40(101000)
 12(001100) 18(010010)

A partir da análise da composição binária da chave,
esta pode ser armazenada no nó da estrutura, ou seja,
adota-se o mesmo critério usado para composição das
árvores digitais; onde as arestas definem a composição
da chave.
               UFS - DComp - Prof. Kenia Kodel             55
Árvore Digital de Pesquisa
Construindo uma árvore                                    28
digital de pesquisa com
  os dados: 28(011100)                          17

 17(010001) 30(011110)                               30
 27(011011) 40(101000)
 12(001100) 18(010010)

Iniciando pela raiz, o primeiro bit de 30 é 0, deve-se
seguir pela esquerda, a qual está ocupada. O segundo
bit é 1, segue-se pela direta, como é encontrado
aterramento, este é o ponto de inserção.

              UFS - DComp - Prof. Kenia Kodel                  56
Árvore Digital de Pesquisa
Construindo uma árvore
digital de pesquisa com
  os dados: 28(011100)                                    28

 17(010001) 30(011110)                          17
 27(011011) 40(101000)                               30
 12(001100) 18(010010)



                          Como inserir os outros
                         elementos na estrutura:

              UFS - DComp - Prof. Kenia Kodel                  57
Árvore Digital de Pesquisa
  Construindo uma
   árvore digital de
                                                     28
   pesquisa com os
                                                    17             40
  dados: 28(011100)
                                        12               30
17(010001) 30(011110)
27(011011) 40(101000)                          18             27

12(001100) 18(010010)


                            Como efetuar
                           consulta nesta?

             UFS - DComp - Prof. Kenia Kodel                            58
Árvore Digital de Pesquisa
  Construindo uma
   árvore digital de                                 28
   pesquisa com os                                  17             40
  dados: 28(011100)                    12                30
17(010001) 30(011110)                          18             27
27(011011) 40(101000)
12(001100) 18(010010)

A consulta é efetuada a partir do código binário
correspondente à chave de pesquisa seguindo os
mesmos critérios usados na construção da estrutura.

             UFS - DComp - Prof. Kenia Kodel                            59
Árvore Digital de Pesquisa
                                      28
                                   17               40
             12                           30
                           18                  27




Esta estrutura é passível de degeneração, como a
maioria das árvores de busca.


            UFS - DComp - Prof. Kenia Kodel              60
Árvore Digital de Pesquisa
  Construindo uma
   árvore digital de
   pesquisa com os                                   28
  dados: 28(011100)                                 17             40
17(010001) 30(011110)                   12               30
27(011011) 40(101000)                          18             27
12(001100) 18(010010)


                            Como efetuar
                           exclusão nesta?

             UFS - DComp - Prof. Kenia Kodel                            61
Árvore Digital de Pesquisa
  Construindo uma
   árvore digital de                                 28
   pesquisa com os                                  17             40
  dados: 28(011100)                       12             30
17(010001) 30(011110)                          18             27
27(011011) 40(101000)
12(001100) 18(010010)


  Na exclusão qualquer nó pode ser substituído
  por seus sucessores; de preferência uma folha.


             UFS - DComp - Prof. Kenia Kodel                            62
Árvore Digital de Pesquisa
  Construindo uma
   árvore digital de
                                                          28
   pesquisa com os
                                                         17             40
  dados: 28(011100)
                                               12             30
17(010001) 30(011110)
27(011011) 40(101000)                               18             27

12(001100) 18(010010)



                             Onde aplicar esta?


             UFS - DComp - Prof. Kenia Kodel                                 63
Árvore Digital de Pesquisa
   Construindo uma
    árvore digital de                                   28
    pesquisa com os
                                                       17             40
   dados: 28(011100)
                                             12             30
 17(010001) 30(011110)
                                                  18             27
 27(011011) 40(101000)
 12(001100) 18(010010)


Podem ser aplicadas, por exemplo, em operação de
baixo nível, para facilitar a comparação de símbolos.


               UFS - DComp - Prof. Kenia Kodel                             64
Exercício
Partindo da árvore                                 28
digital dada, efetue                              17             40
a inclusão das                          12             30
chaves 19, 50, 01 e
                                             18             27
23.


          UFS - DComp - Prof. Kenia Kodel                             65
Exercício
Partindo da árvore                                 28
digital dada, efetue                              17             40
a exclusão das                          12             30
chaves 30.
                                             18             27




          UFS - DComp - Prof. Kenia Kodel                             66
Exercício

Descreva os passos gerais da operação de
consulta em árvores digitais de pesquisa.



          UFS - DComp - Prof. Kenia Kodel   67
Complementar
       Estudos...
               File Organization and Processing
                          Allan L Tharp


                           Capítulo 11
                  Other Tree Structures
             Tries & Digital Search Trees


68       UFS - DComp - Prof. Kenia Kodel
Próximos
passos...



 Árvores B e B+
     UFS - DCOMP - Prof. Kenia   69
              Kodel

Mais conteúdo relacionado

Destaque

EDII05 [2012.1] Arquivos Sequenciais Ordenados Fisicamente
EDII05 [2012.1]   Arquivos Sequenciais Ordenados FisicamenteEDII05 [2012.1]   Arquivos Sequenciais Ordenados Fisicamente
EDII05 [2012.1] Arquivos Sequenciais Ordenados FisicamenteKianeLedok
 
EDII06 [2012.1] Arquivos Sequenciais Ordenados por Link
EDII06 [2012.1]   Arquivos Sequenciais Ordenados por LinkEDII06 [2012.1]   Arquivos Sequenciais Ordenados por Link
EDII06 [2012.1] Arquivos Sequenciais Ordenados por LinkKianeLedok
 
EDII08 [2012.1] Arquivos Diretos - Hashing
EDII08 [2012.1]  Arquivos Diretos - HashingEDII08 [2012.1]  Arquivos Diretos - Hashing
EDII08 [2012.1] Arquivos Diretos - HashingKianeLedok
 
EDII01 [2012.1] Acordo de Convivência
EDII01 [2012.1]   Acordo de ConvivênciaEDII01 [2012.1]   Acordo de Convivência
EDII01 [2012.1] Acordo de ConvivênciaKianeLedok
 
EDII04 [2012.1] Arquivos Sequenciais [Definição e Desordenado]
EDII04 [2012.1]   Arquivos Sequenciais [Definição e Desordenado]EDII04 [2012.1]   Arquivos Sequenciais [Definição e Desordenado]
EDII04 [2012.1] Arquivos Sequenciais [Definição e Desordenado]KianeLedok
 
EdII07 [2012.1] Arquivos Diretos - Dicionário de Dados
EdII07 [2012.1]   Arquivos Diretos - Dicionário de DadosEdII07 [2012.1]   Arquivos Diretos - Dicionário de Dados
EdII07 [2012.1] Arquivos Diretos - Dicionário de DadosKianeLedok
 
EDII02 [2012.1] Introdução (Estruturas de Dados)
EDII02 [2012.1]   Introdução (Estruturas de Dados)EDII02 [2012.1]   Introdução (Estruturas de Dados)
EDII02 [2012.1] Introdução (Estruturas de Dados)KianeLedok
 
EDII02 [2012.1] Introdução (Estruturas de Dados)
EDII02 [2012.1]   Introdução (Estruturas de Dados)EDII02 [2012.1]   Introdução (Estruturas de Dados)
EDII02 [2012.1] Introdução (Estruturas de Dados)KianeLedok
 
Apostila programação "pascalzim"
Apostila programação "pascalzim"Apostila programação "pascalzim"
Apostila programação "pascalzim"deniscody
 
EDII03 [2012.1] Manipulação de Arquivos em Pascal
EDII03 [2012.1]  Manipulação de Arquivos em PascalEDII03 [2012.1]  Manipulação de Arquivos em Pascal
EDII03 [2012.1] Manipulação de Arquivos em PascalKianeLedok
 

Destaque (10)

EDII05 [2012.1] Arquivos Sequenciais Ordenados Fisicamente
EDII05 [2012.1]   Arquivos Sequenciais Ordenados FisicamenteEDII05 [2012.1]   Arquivos Sequenciais Ordenados Fisicamente
EDII05 [2012.1] Arquivos Sequenciais Ordenados Fisicamente
 
EDII06 [2012.1] Arquivos Sequenciais Ordenados por Link
EDII06 [2012.1]   Arquivos Sequenciais Ordenados por LinkEDII06 [2012.1]   Arquivos Sequenciais Ordenados por Link
EDII06 [2012.1] Arquivos Sequenciais Ordenados por Link
 
EDII08 [2012.1] Arquivos Diretos - Hashing
EDII08 [2012.1]  Arquivos Diretos - HashingEDII08 [2012.1]  Arquivos Diretos - Hashing
EDII08 [2012.1] Arquivos Diretos - Hashing
 
EDII01 [2012.1] Acordo de Convivência
EDII01 [2012.1]   Acordo de ConvivênciaEDII01 [2012.1]   Acordo de Convivência
EDII01 [2012.1] Acordo de Convivência
 
EDII04 [2012.1] Arquivos Sequenciais [Definição e Desordenado]
EDII04 [2012.1]   Arquivos Sequenciais [Definição e Desordenado]EDII04 [2012.1]   Arquivos Sequenciais [Definição e Desordenado]
EDII04 [2012.1] Arquivos Sequenciais [Definição e Desordenado]
 
EdII07 [2012.1] Arquivos Diretos - Dicionário de Dados
EdII07 [2012.1]   Arquivos Diretos - Dicionário de DadosEdII07 [2012.1]   Arquivos Diretos - Dicionário de Dados
EdII07 [2012.1] Arquivos Diretos - Dicionário de Dados
 
EDII02 [2012.1] Introdução (Estruturas de Dados)
EDII02 [2012.1]   Introdução (Estruturas de Dados)EDII02 [2012.1]   Introdução (Estruturas de Dados)
EDII02 [2012.1] Introdução (Estruturas de Dados)
 
EDII02 [2012.1] Introdução (Estruturas de Dados)
EDII02 [2012.1]   Introdução (Estruturas de Dados)EDII02 [2012.1]   Introdução (Estruturas de Dados)
EDII02 [2012.1] Introdução (Estruturas de Dados)
 
Apostila programação "pascalzim"
Apostila programação "pascalzim"Apostila programação "pascalzim"
Apostila programação "pascalzim"
 
EDII03 [2012.1] Manipulação de Arquivos em Pascal
EDII03 [2012.1]  Manipulação de Arquivos em PascalEDII03 [2012.1]  Manipulação de Arquivos em Pascal
EDII03 [2012.1] Manipulação de Arquivos em Pascal
 

EDII13 [2012.1] Estruturas de Busca em Texto

  • 2. Extrato  Organização de Arquivos  Arquivos Sequenciais Desordenados  Arquivos Sequenciais Ordenados Fisicamente  Arquivos Sequenciais Ordenados por Link  Arquivos Diretos Mantidos por Dicionário de Dados  Arquivos Diretos Mantidos por Hashing  Arquivos Sequenciais Indexados  Recuperação de Chave Secundária – Multilista  Recuperação de Chave Secundária – Arquivos Invertidos  Recuperação de Chave Secundária – Árvores de Assinaturas  Estruturas de Busca em Texto UFS - DComp - Prof. Kenia Kodel 2
  • 3. O que é busca em texto? UFS - DComp - Prof. Kenia Kodel 3
  • 4. Busca em Texto Busca em texto, ou pesquisa digital, ou ‘casamento de padrões’, ou casamento de cadeias, consiste na pesquisa de uma subsequência de símbolos numa sequência destes (símbolos). UFS - DComp - Prof. Kenia Kodel 4
  • 5. Busca em Texto Pode ter como objetivo encontrar todas as ocorrências, ou somente a primeira, de uma dada subsequência numa dada sequência; a exemplo, de um palavra em um texto. UFS - DComp - Prof. Kenia Kodel 5
  • 6. Onde/Quando se aplica busca em texto? UFS - DComp - Prof. Kenia Kodel 6
  • 7. Busca em Texto A busca em texto é útil para gerenciamento de editores de textos, dicionários, recuperação de dados, manipulação de símbolos. UFS - DComp - Prof. Kenia Kodel 7
  • 8. Como efetuar busca em texto? UFS - DComp - Prof. Kenia Kodel 8
  • 9. Busca em Texto Na busca digital, diferente do que foi visto até então, a chave não é tratada como um elemento único, indivisível. Assume-se que cada chave é constituída de um conjunto de caracteres ou dígitos. UFS - DComp - Prof. Kenia Kodel 9
  • 10. Busca em Texto Assim, como a chave não é tratada como elemento único, ao invés de se comparar a chave procurada com as chaves do conjunto armazenado, a comparação é efetuada caractere a caractere, dentre os caracteres que compõem as chaves. UFS - DComp - Prof. Kenia Kodel 10
  • 11. Busca em Texto Para efetuar busca em texto, é possível explorar: Algoritmos KMP (Knuth, Moris e Pratt) BM (Boyer-Moore) Rabin-Karp Estruturas da Dados Trie Árvore Digital UFS - DComp - Prof. Kenia Kodel 11
  • 12. TRIE Termo proveniente da palavra inglesa retrieval (recuperação), e corresponde a uma estrutura usada para recuperação de dados – de subsequência, em sequência. 1 2 3 4 ...9 10  Trie marco a aldo davi a  b d g m p  r b 3        d 2 l e a  i i a e u e 4         g gil i 10 d l  t v r l r t i l bel  λ    λ   λ m 5 o o i o c o n dino p peto λ λ λ λ  λ q o r rui diro  s marcos s t beto λ λ UFS - DComp - Prof. Kenia Kodel 12
  • 13. TRIE Qual a pronúncia correta? 1 2 3 4 ...9 10  Trie marco a aldo davi a  b d g m p  r b 3        d 2 l e a  i i a e u e 4         g gil i 10 d l  t v r l r t i l bel  λ    λ   λ m 5 o o i o c o n dino p peto λ λ λ λ  λ q o r rui diro  s marco s s t beto λ λ UFS - DComp - Prof. Kenia Kodel 13
  • 14. TRIE São estruturas em que as chaves são tratadas caractere a caractere. E podem ser implementadas por meio de estruturas sequenciais ou dinâmicas. 1 2 3 4 ...9 10  Trie marco a aldo davi a  b d g m p  r b 3        d 2 l e a  i i a e u e 4         g gil i 10 d l  t v r l r t i l bel  λ    λ   λ m 5 o o i o c o n dino p peto λ λ λ λ  λ q o r rui diro  s marco s s t beto λ λ UFS - DComp - Prof. Kenia Kodel 14
  • 15. Construindo uma 1 2 3 4 5 6 trie estática para armazenamento a das palavras: b 1.davi d 2.aldo e 3.beto g 4.diro i 5.peto l 6.rui m 7.bel n 8.gil p 9.marco q 10.marcos r s 11.dino t Reserva-se: Para economia de espaço algumas letras foram suprimidas. UFS - DComp - Prof. Kenia Kodel 15
  • 16. Trie Estática 1 2 3 4 5 6 a b d e g i l m Onde inserir n davi? p q r s t UFS - DComp - Prof. Kenia Kodel 16
  • 17. Construindo uma trie estática para 1 2 3 4 5 6 armazenamento das palavras: a 1.davi b 2.aldo d davi 3.beto e 4.diro g 5.peto i 6.rui l 7.bel m 8.gil n 9.marco p q 10.marcos r 11.dino s Inserir aldo. t UFS - DComp - Prof. Kenia Kodel 17
  • 18. Construindo uma trie estática para 1 2 3 4 5 6 armazenamento das palavras: a aldo 1.davi b 2.aldo d davi 3.beto e 4.diro g 5.peto i 6.rui l 7.bel m 8.gil n p 9.marco q 10.marcos r 11.dino s t Inserir beto. UFS - DComp - Prof. Kenia Kodel 18
  • 19. Construindo uma trie estática para 1 2 3 4 5 6 armazenamento das palavras: a aldo 1.davi b beto 2.aldo d davi 3.beto e 4.diro g 5.peto i 6.rui l 7.bel m 8.gil n p 9.marco q 10.marcos r 11.dino s t Inserir diro. UFS - DComp - Prof. Kenia Kodel 19
  • 20. Construindo uma trie estática para 1 2 3 4 5 6 armazenamento das palavras: a aldo davi 1.davi b beto 2.aldo d 3.beto 2 e 4.diro g 5.peto i diro 6.rui l 7.bel m 8.gil n p 9.marco q 10.marcos r 11.dino s t Inserir peto. UFS - DComp - Prof. Kenia Kodel 20
  • 21. Construindo uma trie estática para 1 2 3 4 5 6 armazenamento das palavras: a aldo davi 1.davi b beto 2.aldo d 3.beto 2 e 4.diro g 5.peto i diro 6.rui l 7.bel m 8.gil n p 9.marco peto q 10.marcos r 11.dino s t Inserir rui. UFS - DComp - Prof. Kenia Kodel 21
  • 22. Construindo uma trie estática para 1 2 3 4 5 6 armazenamento das palavras: a aldo davi 1.davi b beto 2.aldo d 3.beto 2 e 4.diro g 5.peto i diro 6.rui l 7.bel m 8.gil n p 9.marco peto q 10.marcos r rui 11.dino s t Inserir bel. UFS - DComp - Prof. Kenia Kodel 22
  • 23. Construindo uma trie estática para 1 2 3 4 5 6 armazenamento das palavras: a aldo davi 1.davi b 2.aldo 3 d 3.beto 2 e 4 4.diro g 5.peto i diro 6.rui l bel 7.bel m 8.gil n p 9.marco peto q 10.marcos r rui 11.dino s t Inserir gil. beto UFS - DComp - Prof. Kenia Kodel 23
  • 24. Construindo uma trie estática para 1 2 3 4 5 6 armazenamento das palavras: a aldo davi 1.davi b 2.aldo 3 d 3.beto 2 e 4 4.diro g gil 5.peto i diro 6.rui l bel 7.bel m 8.gil n p 9.marco peto q 10.marcos r rui 11.dino s t Inserir marco. beto UFS - DComp - Prof. Kenia Kodel 24
  • 25. Construindo uma trie estática para 1 2 3 4 5 6 armazenamento das palavras: a aldo davi 1.davi b 2.aldo 3 d 3.beto 2 e 4 4.diro g gil 5.peto i diro 6.rui l bel 7.bel m marco 8.gil n p 9.marco peto q 10.marcos r rui 11.dino s Inserir marcos e t dino. beto UFS - DComp - Prof. Kenia Kodel 25
  • 26. Construindo uma trie estática para 1 2 3 4 ...9 10 armazenamento das palavras: marco a 1.davi aldo davi b 2.aldo 3 d 3.beto 2 e 4 4.diro g gil 5.peto i 10 6.rui l bel 7.bel m 5 8.gil n dino p 9.marco peto q 10.marcos r 11.dino rui diro s marcos t beto UFS - DComp - Prof. Kenia Kodel 26
  • 27. Trie Estática 1 2 3 4 ...9 10 marco a aldo davi b 3 d 2 e 4 g gil i 10 l bel m 5 n dino Como efetuar p peto consulta? q r rui diro s marcos t beto UFS - DComp - Prof. Kenia Kodel 27
  • 28. Trie Estática 1 2 3 4 ...9 10 marco a aldo davi b 3 d 2 e 4 g gil i 6 l bel m 5 n dino Como, através p peto desta, por q exemplo, r rui diro manter um s marcos dicionário? t beto UFS - DComp - Prof. Kenia Kodel 28
  • 29. Trie Estática 1 2 3 4 ...9 10 marco a aldo davi b 3 d 2 e 4 g gil i 6 l bel m 5 n dino Esta estrutura p peto facilita a q implementação r rui diro do “auto- s marcos completar”? t beto UFS - DComp - Prof. Kenia Kodel 29
  • 30. Trie Estática 1 2 3 4 ...9 10 marco a aldo davi b 3 d 2 e 4 g gil i 6 l bel m 5 n dino Como p peto dimensionar q esta estrutura? r rui diro s marcos t beto UFS - DComp - Prof. Kenia Kodel 30
  • 31. Construindo uma trie  Trie dinâmica a  b d (cada letra é    mantida l e a numa variável    dinâmica) d t v para    armazenar: o o i davi, aldo, λ λ λ beto, diro, peto, rui, bel, gil , marco, Há aterramento também dos ponteiros “laterais”. marcos, dino. UFS - DComp - Prof. Kenia Kodel 31
  • 32. Construindo Trie uma trie  dinâmica a  b d (cada letra é    mantida l e a numa variável    dinâmica) d t v para armazenar:    davi, aldo, o o i beto, diro, λ λ λ peto, rui, bel, gil , marco, marcos, dino. Inserir diro, peto e rui? UFS - DComp - Prof. Kenia Kodel 32
  • 33. Construindo Trie uma trie  dinâmica a  b d p  r (cada letra é      mantida l e a  i e u numa variável       dinâmica) d t v r t i para armazenar:      λ davi, aldo, o o i o o beto, diro, λ λ λ λ λ peto, rui, bel, gil , marco, marcos, dino. UFS - DComp - Prof. Kenia Kodel 33
  • 34. Construindo uma trie  Trie dinâmica a  b d p  r (cada letra é      mantida numa l e a i e u variável  dinâmica) para       armazenar: d t v r t i davi, aldo,      λ beto, diro, o o i o o peto, rui, bel, gil λ λ λ λ λ , marco, marcos, dino. Como, inserir bel, gil, marco, marcos e dino? UFS - DComp - Prof. Kenia Kodel 34
  • 35. Construindo  Trie uma trie a  b d g  m p  r dinâmica (cada letra é        mantida l e a  i i a e u numa variável         dinâmica) d l  t v r l r t i para  λ    λ   λ armazenar: o o i o c o davi, aldo, beto, diro, λ λ λ λ  λ peto, rui, bel, o gil , marco,  marcos, dino.  s λ λ UFS - DComp - Prof. Kenia Kodel 35
  • 36. Trie Dinâmica  Trie a  b d g  m p  r        l e a  i i a e u         d l  t v r l r t i  λ    λ   λ Como o o i o c o “declarar” λ λ λ λ  λ cada nó? o   s λ λ UFS - DComp - Prof. Kenia Kodel 36
  • 37. Trie Dinâmica  Trie a  b d g  m p  r        l e a  i i a e u Composição de cada nó.         próxima d l  t v r l r t i caracter palavra próximo carater  λ    λ   λ o o i o c o λ λ λ λ  λ o   s λ λ UFS - DComp - Prof. Kenia Kodel 37
  • 38. Trie Dinâmica  Trie a  b d g  m p  r        l e a  i i a e u         d l  t v r l r t i  λ    λ   λ Como o o i o c o efetuar λ λ λ λ  λ consulta o nesta?   s λ λ UFS - DComp - Prof. Kenia Kodel 38
  • 39. Trie Dinâmica  Trie a  b d g  m p  r        l e a  i i a e u         d l  t v r l r t i  λ    λ   λ Como, o o i o c o através desta, λ λ λ λ λ implementar  dicionário? o   s λ λ UFS - DComp - Prof. Kenia Kodel 39
  • 40. Trie Dinâmica  Trie a  b d g  m p  r        l e a  i i a e u         d l  t v r l r t i  λ    λ   λ o o i o c o λ λ λ λ  λ Estrutura útil também para o implementação de casamento  aproximado de cadeia – quando o s usuário da aplicação não tem domínio  exato da chave de busca. λ λ UFS - DComp - Prof. Kenia Kodel 40
  • 41. Exercício Construir trieS (estática e dinâmica) para manter: pinha, jaca, caju, coco, açai, caja e pinhao. UFS - DComp - Prof. Kenia Kodel 41
  • 42. Exercício Que implementação da trie apresenta melhor desempenho: a estática ou a dinâmica? Justifique: (a) em velocidade de processamento, (b) em espaço de armazenamento UFS - DComp - Prof. Kenia Kodel 42
  • 43. Exercício Descrever a implementação do recurso auto-completar a partir de palavras mantidas em tries. UFS - DComp - Prof. Kenia Kodel 43
  • 44. Árvore Digital de Pesquisa Uma árvore digital para um alfabeto S com m caracteres a b (com itens d ordenáveis) é uma e a i árvore m-ária T, não vazia, tal que: d l t v n r 1. Se um nó qualquer x é o i-ésimo filho de o o i o o seu pai, então x corresponde ao i- ésimo item do alfabeto S, sendo 1<=i<=m. UFS - DComp - Prof. Kenia Kodel 44
  • 45. Árvore Digital de Pesquisa Uma árvore digital para um alfabeto S com m caracteres a b (com itens ordenáveis) d é uma árvore m-ária T, e a i não vazia, tal que: t 2. Para cada nó x, a d l v n r sequência de dígitos definida pelo caminho o o i o o desde a raiz de T até x corresponde no todo, ou em parte, a uma chave de pesquisa. UFS - DComp - Prof. Kenia Kodel 45
  • 46. Árvore Digital de Pesquisa a b m p r d e a i a e u l l t v n r r t i d o o i o o c o o Como inserir: eva, tel, marcus e bela? s UFS - DComp - Prof. Kenia Kodel 46
  • 47. Árvore Digital de Pesquisa a b m p r d e a i a e u l l t v n r r t i d o o i o o c o o Como efetuar consulta nesta? s UFS - DComp - Prof. Kenia Kodel 47
  • 48. Árvore Digital de Pesquisa a b m p r d e a i a e u l l t v n r r t i d o o i o o c o o Como, a partir desta, pode ser implementado s um dicionário? UFS - DComp - Prof. Kenia Kodel 48
  • 49. Exercício Construir árvore digital para manter: pinha, jaca, caju, coco, açai, caja e pinhao. UFS - DComp - Prof. Kenia Kodel 49
  • 50. Exercício Descrever a operação de consulta, a uma determinada palavra, numa árvore digital de pesquisa. UFS - DComp - Prof. Kenia Kodel 50
  • 51. Exercício Elaborar declaração de uma árvore digital de pesquisa, considerando o nosso alfabeto. UFS - DComp - Prof. Kenia Kodel 51
  • 52. Árvore Digital de Pesquisa Como estrutura de busca em Árvore digital de pesquisa texto, há ainda as árvores com os dados: 28(011100) digitais binárias de pesquisa. 17(010001) 30(011110) Estas são compostas com 27(011011) 40(101000) base no código binário 12(001100) 18(010010) correspondente às chaves de pesquisas. Ou seja, 28 corresponde a uma árvore 17 40 digital de pesquisa cujo 12 30 alfabeto apresenta somente 18 27 dois itens. UFS - DComp - Prof. Kenia Kodel 52
  • 53. Árvore Digital de Pesquisa Construindo uma 28 árvore digital de pesquisa com os dados: 28(011100) 17(010001) 30(011110) 27(011011) 40(101000) 12(001100) 18(010010) O primeiro dado inserido pode ser mantido na raiz da árvore. Mas há autores que consideram que a raiz da árvore não armazena dados, nem corresponde a qualquer dígito/dado. UFS - DComp - Prof. Kenia Kodel 53
  • 54. Árvore Digital de Pesquisa Construindo uma árvore 28 digital de pesquisa com 17 os dados: 28(011100) 17(010001) 30(011110) 27(011011) 40(101000) 12(001100) 18(010010) A partir da segunda entrada, analisa-se a composição binária da chave, de primeiro ao último bit. Se o bit for 0 segue para esquerda da estrutura, se 1, pela direita. UFS - DComp - Prof. Kenia Kodel 54
  • 55. Árvore Digital de Pesquisa Construindo uma árvore digital de pesquisa com 28 os dados: 28(011100) 17 17(010001) 30(011110) 27(011011) 40(101000) 12(001100) 18(010010) A partir da análise da composição binária da chave, esta pode ser armazenada no nó da estrutura, ou seja, adota-se o mesmo critério usado para composição das árvores digitais; onde as arestas definem a composição da chave. UFS - DComp - Prof. Kenia Kodel 55
  • 56. Árvore Digital de Pesquisa Construindo uma árvore 28 digital de pesquisa com os dados: 28(011100) 17 17(010001) 30(011110) 30 27(011011) 40(101000) 12(001100) 18(010010) Iniciando pela raiz, o primeiro bit de 30 é 0, deve-se seguir pela esquerda, a qual está ocupada. O segundo bit é 1, segue-se pela direta, como é encontrado aterramento, este é o ponto de inserção. UFS - DComp - Prof. Kenia Kodel 56
  • 57. Árvore Digital de Pesquisa Construindo uma árvore digital de pesquisa com os dados: 28(011100) 28 17(010001) 30(011110) 17 27(011011) 40(101000) 30 12(001100) 18(010010) Como inserir os outros elementos na estrutura: UFS - DComp - Prof. Kenia Kodel 57
  • 58. Árvore Digital de Pesquisa Construindo uma árvore digital de 28 pesquisa com os 17 40 dados: 28(011100) 12 30 17(010001) 30(011110) 27(011011) 40(101000) 18 27 12(001100) 18(010010) Como efetuar consulta nesta? UFS - DComp - Prof. Kenia Kodel 58
  • 59. Árvore Digital de Pesquisa Construindo uma árvore digital de 28 pesquisa com os 17 40 dados: 28(011100) 12 30 17(010001) 30(011110) 18 27 27(011011) 40(101000) 12(001100) 18(010010) A consulta é efetuada a partir do código binário correspondente à chave de pesquisa seguindo os mesmos critérios usados na construção da estrutura. UFS - DComp - Prof. Kenia Kodel 59
  • 60. Árvore Digital de Pesquisa 28 17 40 12 30 18 27 Esta estrutura é passível de degeneração, como a maioria das árvores de busca. UFS - DComp - Prof. Kenia Kodel 60
  • 61. Árvore Digital de Pesquisa Construindo uma árvore digital de pesquisa com os 28 dados: 28(011100) 17 40 17(010001) 30(011110) 12 30 27(011011) 40(101000) 18 27 12(001100) 18(010010) Como efetuar exclusão nesta? UFS - DComp - Prof. Kenia Kodel 61
  • 62. Árvore Digital de Pesquisa Construindo uma árvore digital de 28 pesquisa com os 17 40 dados: 28(011100) 12 30 17(010001) 30(011110) 18 27 27(011011) 40(101000) 12(001100) 18(010010) Na exclusão qualquer nó pode ser substituído por seus sucessores; de preferência uma folha. UFS - DComp - Prof. Kenia Kodel 62
  • 63. Árvore Digital de Pesquisa Construindo uma árvore digital de 28 pesquisa com os 17 40 dados: 28(011100) 12 30 17(010001) 30(011110) 27(011011) 40(101000) 18 27 12(001100) 18(010010) Onde aplicar esta? UFS - DComp - Prof. Kenia Kodel 63
  • 64. Árvore Digital de Pesquisa Construindo uma árvore digital de 28 pesquisa com os 17 40 dados: 28(011100) 12 30 17(010001) 30(011110) 18 27 27(011011) 40(101000) 12(001100) 18(010010) Podem ser aplicadas, por exemplo, em operação de baixo nível, para facilitar a comparação de símbolos. UFS - DComp - Prof. Kenia Kodel 64
  • 65. Exercício Partindo da árvore 28 digital dada, efetue 17 40 a inclusão das 12 30 chaves 19, 50, 01 e 18 27 23. UFS - DComp - Prof. Kenia Kodel 65
  • 66. Exercício Partindo da árvore 28 digital dada, efetue 17 40 a exclusão das 12 30 chaves 30. 18 27 UFS - DComp - Prof. Kenia Kodel 66
  • 67. Exercício Descreva os passos gerais da operação de consulta em árvores digitais de pesquisa. UFS - DComp - Prof. Kenia Kodel 67
  • 68. Complementar Estudos... File Organization and Processing Allan L Tharp Capítulo 11 Other Tree Structures Tries & Digital Search Trees 68 UFS - DComp - Prof. Kenia Kodel
  • 69. Próximos passos... Árvores B e B+ UFS - DCOMP - Prof. Kenia 69 Kodel