Está en la página 1de 3

CI-0112 Programación 1 10 de noviembre de 2022

Tarea 18
Arboles de recuperación (tries)
Complete los siguientes métodos de la clase Trie del listado 1:
public void insertar(String palabra) Inserta la palabra en el árbol. [5 pts.]
public boolean buscar(String palabra) Busca la palabra en el árbol. [5 pts.]

Listado 1: Clase Trie.


1 /∗ ∗
2 ∗ Clase Trie
3 ∗
4 ∗ @author ( your name )
5 ∗ @ v e r s i o n ( a v e r s i o n number or a d a t e )
6 ∗/
7 public c l a s s T r i e
8 {
9 private Nodo r a í z ;
10

11 /∗ ∗
12 ∗ C o n s t r u c t o r de o b j e t o s de l a c l a s e T r i e
13 ∗/
14 public T r i e ( )
15 {
16 r a í z = new Nodo ( ) ;
17 }
18

19 /∗ ∗
20 ∗ I n s e r t a p a l a b r a en e l á r b o l
21 ∗
22 ∗ @param p a l a b r a p a l a b r a a i n s e r t a r
23 ∗/
24 public void i n s e r t a r ( S t r i n g p a l a b r a )
25 {
26 i f ( ! p a l a b r a . isEmpty ( ) ) {
27 char [ ] c a r a c t e r e s = p a l a b r a . toCharArray ( ) ;
28 ...
29 }
30 }
31

32 /∗ ∗
33 ∗ Busca p a l a b r a en e l á r b o l
34 ∗
35 ∗ @param p a l a b r a P a l a b r a a b u s c a r
36 ∗ @return t r u e s i l a p a l a b r a f u e h a l l a d a y f a l s e s i no
37 ∗/
38 public boolean b u s c a r ( S t r i n g p a l a b r a )
39 {
40 i f ( p a l a b r a . isEmpty ( ) ) {
41 return true ; // o f a l s e , como p r e f i e r a
42 }
43 else {
44 char [ ] c a r a c t e r e s = p a l a b r a . toCharArray ( ) ;
45 ...
46 }
47 }
48 }

Página 1 de 3
CI-0112 Programación 1 10 de noviembre de 2022

Listado 2: Clase Nodo.


1 import j a v a . u t i l . HashMap ;
2 /∗ ∗
3 ∗ Nodo de un t r i e
4 ∗
5 ∗ @author ( your name )
6 ∗ @ v e r s i o n ( a v e r s i o n number or a d a t e )
7 ∗/
8 public c l a s s Nodo
9 {
10 public HashMap<Character , Nodo> h i j o s ;
11 public boolean e s T e r m i n a l ;
12

13 /∗ ∗
14 ∗ C o n s t r u c t o r para o b j e t o s de l a c l a s e Nodo
15 ∗/
16 public Nodo ( )
17 {
18 t h i s . h i j o s = new HashMap<>() ;
19 this . esTerminal = false ;
20 }
21

22 public void a g r e g a r ( C h a r a c t e r c a r a c t e r ) {
23 i f ( ! h i j o s . containsKey ( c a r a c t e r ) ) {
24 h i j o s . put ( c a r a c t e r , new Nodo ( ) ) ;
25 }
26 }
27 }

Listado 3: Demo de la clase Trie del listado 1.


1 /∗ ∗
2 ∗ Demostraci ón d e l uso de l a c l a s e T r i e
3 ∗
4 ∗ @author ( your name )
5 ∗ @ v e r s i o n ( a v e r s i o n number or a d a t e )
6 ∗/
7 public c l a s s Demo
8 {
9 /∗ ∗
10 ∗ Demostraci ón d e l uso de l a c l a s e T r i e
11 ∗/
12 public s t a t i c void main ( S t r i n g [ ] a r g s )
13 {
14 T r i e t r i e = new T r i e ( ) ;
15 t r i e . i n s e r t a r ( "uno" ) ;
16 t r i e . i n s e r t a r ( " dos " ) ;
17 trie . insertar (" tres ") ;
18 t r i e . i n s e r t a r ( " cuatro " ) ;
19 t r i e . insertar (" cinco ") ;
20 trie . insertar (" seis ") ;
21 trie . insertar (" siete ") ;
22 t r i e . i n s e r t a r ( " ocho " ) ;
23 t r i e . i n s e r t a r ( " nueve " ) ;
24 t r i e . insertar (" diez ") ;
25 System . out . p r i n t l n ( " Est á « c e r o » : " + t r i e . b u s c a r ( " c e r o " ) ) ;
26 System . out . p r i n t l n ( " Est á « t r e s » : " + t r i e . b u s c a r ( " t r e s " ) ) ;
27 System . out . p r i n t l n ( " Est á « s e i s » : " + t r i e . b u s c a r ( " s e i s " ) ) ;

Página 2 de 3
CI-0112 Programación 1 10 de noviembre de 2022

28 System . out . p r i n t l n ( " Est á « nueve » : " + t r i e . b u s c a r ( " nueve " ) ) ;


29 System . out . p r i n t l n ( " Est á « doce » : " + t r i e . b u s c a r ( " doce " ) ) ;
30 }
31 }

Listado 4: Resultado de la ejecución del listado 3.


1 Est á «cero» : f a l s e
2 Est á « tres » : true
3 Est á « s e i s » : true
4 Est á « nueve » : t r u e
5 Est á « doce » : f a l s e

Página 3 de 3

También podría gustarte