SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Recorridos	
  ABB
Árboles	
  de	
  búsqueda	
  binaria
Gloria	
  Isabel	
  Bautista	
  Lasprilla.
bautistalasprilla.gloriaisabel@gmail.com
gbautista@unitecnologica.edu.co
gloria@utbvirtual.edu.co
inOrdenRecorrido
6 17
42
48
27
13
33
La	
  función	
  inOrdenRecorrido invoca	
  a	
  la	
  función	
  de	
  utilería	
  inOrdenAyudante para	
  realizar	
  
el	
  recorrido	
  inorden del	
  árbol	
  binario.	
  Los	
  pasos	
  para	
  un	
  recorrido	
  inorden son:
1. Recorrer	
  el	
  subárbol	
  izquierdo	
  mediante	
  un	
  recorrido	
  inorden (Esto	
  se	
  lleva	
  a	
  cabo	
  
mediante	
  la	
  llamada	
  a	
  inOrdenAyudante)
2. Procesar	
  el	
  valor	
  en	
  el	
  nodo;	
  es	
  decir,	
  imprimir	
  el	
  valor	
  del	
  nodo.
3. Recorrer	
  el	
  subárbol	
  derecho	
  con	
  un	
  recorrido	
  inorden (Esto	
  se	
  lleva	
  a	
  cabo	
  mediante	
  
la	
  llamada	
  a	
  inOrdenAyudante)	
  
/*Empezar	
  recorrido	
  inorden del	
  Arbol*/
template <class TIPONODO>
void Arbol<TIPONODO>::inOrdenRecorrido()	
  const
{
inOrdenAyudante(raizPtr);
}
/*Función	
  de	
  utilería	
  para	
  realizar	
  recorrido	
  inorden*/
template <class TIPONODO>
void Arbol<TIPONODO>::inOrdenAyudante(NodoArbol<TIPONODO>	
  *ptr)	
  const
{
if(ptr !=	
  0){
inOrdenAyudante(ptr-­‐>izqPtr);
cout<<ptr-­‐>datos<<"	
  ";
inOrdenAyudante(ptr-­‐>derPtr);
}
}
El	
  valor	
  de	
  un	
  nodo	
  no	
  se	
  procesa	
  si	
  no	
  hasta	
  que	
  se	
  procesen	
  todos	
  los	
  valores	
  
en	
  su	
  subárbol	
  izquierdo,	
  ya	
  que	
  cada	
  llamada	
  a	
  inOrdenAyudante llama	
  
inmediatamente	
  a	
  inOrdenAyudante otra	
  vez	
  con	
  el	
  apuntador	
  al	
  subárbol	
  
izquierdo.
El	
  recorrido	
  sería	
  entonces:
Izquierdo	
  – raiz	
  -­‐ derecho	
  
6	
  – 13	
  – 17	
  – 27	
  – 33	
  – 42	
  – 48
Observe	
  que	
  el	
  recorrido	
  inorden de	
  un	
  árbol	
  de	
  búsqueda	
  binaria	
  imprime	
  los	
  
valores	
  de	
  los	
  nodos	
  en	
  orden	
  ascendente.	
  El	
  proceso	
  de	
  crear	
  un	
  árbol	
  de	
  
búsqueda	
  binaria	
  verdaderamente	
  ordena	
  los	
  datos;	
  de	
  aquí	
  que	
  se	
  llame	
  a	
  este	
  
proceso	
  el	
  ordenamiento	
  de	
  árbol	
  binario.
6 17
42
48
27
13
33
inOrden
preOrdenRecorrido
La	
  función	
  preOrdenRecorrido invoca	
  a	
  la	
  función	
  de	
  utilería	
  
preOrdenAyudante para	
  realizar	
  el	
  recorrido	
  preorden del	
  árbol	
  binario.	
  Los	
  
pasos	
  para	
  un	
  recorrido	
  preorden son:
1. Procesar	
  el	
  valor	
  del	
  nodo.
2. Recorrer	
  el	
  subárbol	
  izquierdo	
  con	
  un	
  recorrido	
  preorden.	
  (Esto	
  se	
  lleva	
  a	
  
cabo	
  mediante	
  la	
  llamada	
  a	
  preOrdenAyudante)
3. Recorrer	
  el	
  subárbol	
  derecho	
  con	
  un	
  recorrido	
  preorden.	
  (Esto	
  se	
  lleva	
  a	
  
cabo	
  mediante	
  la	
  llamada	
  a	
  preOrdenAyudante)
El	
  valor	
  de	
  cada	
  nodo	
  se	
  procesa	
  a	
  medida	
  que	
  éste	
  se	
  va	
  visitando.	
  Una	
  vez	
  
que	
  se	
  procesa	
  el	
  valor	
  en	
  un	
  nodo	
  dado,	
  se	
  procesan	
  los	
  valores	
  en	
  el	
  
subárbol	
  izquierdo.	
  Luego	
  se	
  procesan	
  los	
  valores	
  en	
  el	
  subárbol	
  derecho.	
  El	
  
recorrido	
  preorden del	
  árbol	
  ejemplo	
  sería:
27	
  – 13	
  – 6	
  – 17	
  – 42	
  – 33	
  -­‐ 48
template <class TIPONODO>
void Arbol<TIPONODO>::preOrdenRecorrido()	
  const
{
preOrdenAyudante(raizPtr);
}
/*Función	
  de	
  utilería	
  para	
  realizar	
  recorrido	
  preorden*/
template <class TIPONODO>
void Arbol<TIPONODO>::preOrdenAyudante(NodoArbol<TIPONODO>	
  *ptr)	
  const
{
if(ptr !=	
  0){
cout<<ptr-­‐>datos<<"	
  ";
preOrdenAyudante(ptr-­‐>izqPtr);
preOrdenAyudante(ptr-­‐>derPtr);
}
}
postOrdenRecorrido
La	
  función	
  postOrdenRecorrido invoca	
  a	
  la	
  función	
  de	
  utilería	
  
postOrdenAyudante para	
  realizar	
  el	
  recorrdio postorden del	
  árbol	
  binario.	
  Los	
  
pasos	
  para	
  un	
  recorrido	
  postorden son:
1. Recorrer	
  el	
  subárbol	
  izquierdo	
  con	
  un	
  recorrido	
  postorden.	
  (Esto	
  se	
  lleva	
  a	
  
cabo	
  mediante	
  la	
  llamada	
  a	
  postOrdenAyudante)
2. Recorrer	
  el	
  subárbol	
  derecho	
  con	
  un	
  recorrido	
  postorden.	
  (Esto	
  se	
  lleva	
  a	
  
cabo	
  mediante	
  la	
  llamada	
  a	
  postOrdenAyudante)
3. Procesar	
  el	
  valor	
  del	
  nodo.
El	
  valor	
  de	
  cada	
  nodo	
  no	
  se	
  imprimirá	
  sino	
  hasta	
  que	
  se	
  impriman	
  los	
  valores	
  de	
  
sus	
  hijos.	
  El	
  recorrido	
  postorden	
  del	
  árbol	
  ejemplo	
  es:
6	
  – 17	
  – 13	
  – 33	
  – 48	
  – 42	
  -­‐ 27
/*Empezar	
  recorrido	
  postorden del	
  Arbol*/
template <class TIPONODO>
void Arbol<TIPONODO>::postOrdenRecorrido()	
  const
{
postOrdenAyudante(raizPtr);
}
/*Función	
  de	
  utilería	
  para	
  realizar	
  recorrido	
  postorden*/
template <class TIPONODO>
void Arbol<TIPONODO>::postOrdenAyudante(NodoArbol<TIPONODO>	
  *ptr)	
  const
{
if(ptr !=	
  0){
postOrdenAyudante(ptr-­‐>izqPtr);
postOrdenAyudante(ptr-­‐>derPtr);
cout<<ptr-­‐>datos<<"	
  ";
}
}
¿Preguntas?
Gloria	
  Isabel	
  Bautista	
  Lasprilla
gbautist@unitecnologica.edu.co
gloria@utbvirtual.edu.co

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Classes,object and methods java
Classes,object and methods javaClasses,object and methods java
Classes,object and methods java
 
Lista simple
Lista simpleLista simple
Lista simple
 
Introduction to Java
Introduction to JavaIntroduction to Java
Introduction to Java
 
DATA STRUCTURES
DATA STRUCTURESDATA STRUCTURES
DATA STRUCTURES
 
Binary search tree
Binary search treeBinary search tree
Binary search tree
 
1.1 binary tree
1.1 binary tree1.1 binary tree
1.1 binary tree
 
Final keyword in java
Final keyword in javaFinal keyword in java
Final keyword in java
 
Binary trees1
Binary trees1Binary trees1
Binary trees1
 
Unidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasUnidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicas
 
Recursion
RecursionRecursion
Recursion
 
Clase 10 Estructuras De Datos Y Arreglos
Clase 10 Estructuras De Datos Y ArreglosClase 10 Estructuras De Datos Y Arreglos
Clase 10 Estructuras De Datos Y Arreglos
 
Programación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibradosProgramación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibrados
 
Ordenamiento con árbol binario
Ordenamiento con árbol binarioOrdenamiento con árbol binario
Ordenamiento con árbol binario
 
Constructor in java
Constructor in javaConstructor in java
Constructor in java
 
Tree Traversal
Tree TraversalTree Traversal
Tree Traversal
 
Programacion estructura de arboles en c
Programacion estructura de arboles en cProgramacion estructura de arboles en c
Programacion estructura de arboles en c
 
Binary Tree Traversal
Binary Tree TraversalBinary Tree Traversal
Binary Tree Traversal
 
Placement oriented data structures
Placement oriented data structuresPlacement oriented data structures
Placement oriented data structures
 
Quicksort Presentation
Quicksort PresentationQuicksort Presentation
Quicksort Presentation
 
Manual de oracle sql
Manual de oracle sqlManual de oracle sql
Manual de oracle sql
 

Similar a Recorridos ABB

Similar a Recorridos ABB (6)

Arboles
ArbolesArboles
Arboles
 
Seudocodigo arbol
Seudocodigo arbolSeudocodigo arbol
Seudocodigo arbol
 
Sustentacion arboles
Sustentacion arbolesSustentacion arboles
Sustentacion arboles
 
binarySearchTree.ppt
binarySearchTree.pptbinarySearchTree.ppt
binarySearchTree.ppt
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 

Más de Gloria Isabel Bautista Lasprilla (13)

Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Complejidad computacional 1
Complejidad computacional 1Complejidad computacional 1
Complejidad computacional 1
 
Profesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTBProfesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTB
 
Complejidad computacional selección
Complejidad computacional   selecciónComplejidad computacional   selección
Complejidad computacional selección
 
El apuntador this
El apuntador this El apuntador this
El apuntador this
 
Poster - presentación
Poster - presentaciónPoster - presentación
Poster - presentación
 
Abb árboles de búsqueda binaria
Abb árboles de búsqueda binariaAbb árboles de búsqueda binaria
Abb árboles de búsqueda binaria
 
Definición de clases en POO
Definición de clases en POODefinición de clases en POO
Definición de clases en POO
 
Poo presentacion
Poo presentacionPoo presentacion
Poo presentacion
 
Presentacion encuentro gloria bautista
Presentacion encuentro   gloria bautistaPresentacion encuentro   gloria bautista
Presentacion encuentro gloria bautista
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Modelo curricular por ciclos propedéuticos, programas técnicos y tecnológicos
Modelo curricular por ciclos propedéuticos, programas técnicos y tecnológicosModelo curricular por ciclos propedéuticos, programas técnicos y tecnológicos
Modelo curricular por ciclos propedéuticos, programas técnicos y tecnológicos
 
Articulación Educación Media con Superior
Articulación Educación Media con SuperiorArticulación Educación Media con Superior
Articulación Educación Media con Superior
 

Recorridos ABB

  • 1. Recorridos  ABB Árboles  de  búsqueda  binaria Gloria  Isabel  Bautista  Lasprilla. bautistalasprilla.gloriaisabel@gmail.com gbautista@unitecnologica.edu.co gloria@utbvirtual.edu.co
  • 2. inOrdenRecorrido 6 17 42 48 27 13 33 La  función  inOrdenRecorrido invoca  a  la  función  de  utilería  inOrdenAyudante para  realizar   el  recorrido  inorden del  árbol  binario.  Los  pasos  para  un  recorrido  inorden son: 1. Recorrer  el  subárbol  izquierdo  mediante  un  recorrido  inorden (Esto  se  lleva  a  cabo   mediante  la  llamada  a  inOrdenAyudante) 2. Procesar  el  valor  en  el  nodo;  es  decir,  imprimir  el  valor  del  nodo. 3. Recorrer  el  subárbol  derecho  con  un  recorrido  inorden (Esto  se  lleva  a  cabo  mediante   la  llamada  a  inOrdenAyudante)  
  • 3. /*Empezar  recorrido  inorden del  Arbol*/ template <class TIPONODO> void Arbol<TIPONODO>::inOrdenRecorrido()  const { inOrdenAyudante(raizPtr); } /*Función  de  utilería  para  realizar  recorrido  inorden*/ template <class TIPONODO> void Arbol<TIPONODO>::inOrdenAyudante(NodoArbol<TIPONODO>  *ptr)  const { if(ptr !=  0){ inOrdenAyudante(ptr-­‐>izqPtr); cout<<ptr-­‐>datos<<"  "; inOrdenAyudante(ptr-­‐>derPtr); } }
  • 4. El  valor  de  un  nodo  no  se  procesa  si  no  hasta  que  se  procesen  todos  los  valores   en  su  subárbol  izquierdo,  ya  que  cada  llamada  a  inOrdenAyudante llama   inmediatamente  a  inOrdenAyudante otra  vez  con  el  apuntador  al  subárbol   izquierdo. El  recorrido  sería  entonces: Izquierdo  – raiz  -­‐ derecho   6  – 13  – 17  – 27  – 33  – 42  – 48 Observe  que  el  recorrido  inorden de  un  árbol  de  búsqueda  binaria  imprime  los   valores  de  los  nodos  en  orden  ascendente.  El  proceso  de  crear  un  árbol  de   búsqueda  binaria  verdaderamente  ordena  los  datos;  de  aquí  que  se  llame  a  este   proceso  el  ordenamiento  de  árbol  binario. 6 17 42 48 27 13 33 inOrden
  • 5. preOrdenRecorrido La  función  preOrdenRecorrido invoca  a  la  función  de  utilería   preOrdenAyudante para  realizar  el  recorrido  preorden del  árbol  binario.  Los   pasos  para  un  recorrido  preorden son: 1. Procesar  el  valor  del  nodo. 2. Recorrer  el  subárbol  izquierdo  con  un  recorrido  preorden.  (Esto  se  lleva  a   cabo  mediante  la  llamada  a  preOrdenAyudante) 3. Recorrer  el  subárbol  derecho  con  un  recorrido  preorden.  (Esto  se  lleva  a   cabo  mediante  la  llamada  a  preOrdenAyudante) El  valor  de  cada  nodo  se  procesa  a  medida  que  éste  se  va  visitando.  Una  vez   que  se  procesa  el  valor  en  un  nodo  dado,  se  procesan  los  valores  en  el   subárbol  izquierdo.  Luego  se  procesan  los  valores  en  el  subárbol  derecho.  El   recorrido  preorden del  árbol  ejemplo  sería: 27  – 13  – 6  – 17  – 42  – 33  -­‐ 48
  • 6. template <class TIPONODO> void Arbol<TIPONODO>::preOrdenRecorrido()  const { preOrdenAyudante(raizPtr); } /*Función  de  utilería  para  realizar  recorrido  preorden*/ template <class TIPONODO> void Arbol<TIPONODO>::preOrdenAyudante(NodoArbol<TIPONODO>  *ptr)  const { if(ptr !=  0){ cout<<ptr-­‐>datos<<"  "; preOrdenAyudante(ptr-­‐>izqPtr); preOrdenAyudante(ptr-­‐>derPtr); } }
  • 7. postOrdenRecorrido La  función  postOrdenRecorrido invoca  a  la  función  de  utilería   postOrdenAyudante para  realizar  el  recorrdio postorden del  árbol  binario.  Los   pasos  para  un  recorrido  postorden son: 1. Recorrer  el  subárbol  izquierdo  con  un  recorrido  postorden.  (Esto  se  lleva  a   cabo  mediante  la  llamada  a  postOrdenAyudante) 2. Recorrer  el  subárbol  derecho  con  un  recorrido  postorden.  (Esto  se  lleva  a   cabo  mediante  la  llamada  a  postOrdenAyudante) 3. Procesar  el  valor  del  nodo. El  valor  de  cada  nodo  no  se  imprimirá  sino  hasta  que  se  impriman  los  valores  de   sus  hijos.  El  recorrido  postorden  del  árbol  ejemplo  es: 6  – 17  – 13  – 33  – 48  – 42  -­‐ 27
  • 8. /*Empezar  recorrido  postorden del  Arbol*/ template <class TIPONODO> void Arbol<TIPONODO>::postOrdenRecorrido()  const { postOrdenAyudante(raizPtr); } /*Función  de  utilería  para  realizar  recorrido  postorden*/ template <class TIPONODO> void Arbol<TIPONODO>::postOrdenAyudante(NodoArbol<TIPONODO>  *ptr)  const { if(ptr !=  0){ postOrdenAyudante(ptr-­‐>izqPtr); postOrdenAyudante(ptr-­‐>derPtr); cout<<ptr-­‐>datos<<"  "; } }
  • 9. ¿Preguntas? Gloria  Isabel  Bautista  Lasprilla gbautist@unitecnologica.edu.co gloria@utbvirtual.edu.co