SlideShare una empresa de Scribd logo
1 de 3
LA TORRE DE HANOI
Las Torres de Hanói es un rompecabezas o juego matemático inventado en 1883
por el matemático francés Éduard Lucas. Este solitario se trata de un juego de
ocho discos de radio creciente que se apilan insertándose en una de las tres
estacas de un tablero. El objetivo del juego es crear la pila en otra de las estacas
siguiendo unas ciertas reglas. El problema es muy conocido en la ciencia de la
computación y aparece en muchos libros de texto como introducción a la teoría
de algoritmos.
CODIGO DE (MAIN)
package TORRE;
import TipoPila.pila;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class principal {
public static void main(String[] args) throws Exception {
//creacion las tres torres
pila torre1 = new pila();
pila torre2 = new pila();
pila torre3 = new pila();
torre1.llenar();
torr (5, torre1, torre2, torre3);
while(!torre3.pilaVacia())
torre3.imprimePila();
}
// metodo hanoi donde recibe los cuatro parametros
static void torr (int dis,pila t1,pila t2,pila t3) throws Exception{
if(dis==1){
t3.insertar(t1.quitar());
}
// recursividad
else{
torr(dis-1, t1, t3, t2);
torr(1, t1, t2, t3);
torr (dis-1, t2, t1, t3);
}
}
}
CODIGO DE LA (CLASE)
package TipoPila;
public class pila {
private int TAMPILA = 5;
private int cima;
private final int[] listaPila;
// el siguiente metodo es el constructor de la clase,ayuda en la
inicializacion
// de la misma
public pila() {
//estado inicial de la pila
cima= -1;
listaPila= new int[TAMPILA];
}
//Operaciones que modifican la pila
public void insertar(int elemento) throws Exception{
if (pilaLlena()){
throw new Exception("Desbordamiento de la Pila");
}
cima++;
listaPila[cima]=elemento;
}
public int quitar() throws Exception{
int aux;
if (pilaVacia()){
throw new Exception("Pila Vacia");
}
//Guarda el elemento de la cima
aux=listaPila[cima];
//decrementa el elemento de la cima y devuelve el
elemento
cima--;
return aux;
}
public int cimaPila() throws Exception{
if (pilaVacia()){
throw new Exception("Pila Vacia no hay elementos");
}
return listaPila[cima];
}
//Metodos para verificacion del estado de la pila---
public boolean pilaVacia(){
return cima == -1;
}
public boolean pilaLlena(){
return cima == TAMPILA -1;
}
public void limpiarPila(){
cima = -1;
}
// impresion [salida]
public void imprimePila(){
int a = 0;
try {
while (!pilaVacia()){
a=quitar();
System.out.println(a+ " ");
}
}catch (Exception e){
System.out.print("Excepcion :" + e);
}
}
// llenado de la pila para mostrarla
public void llenar(){
int ct=11;
for(int j = 1; j<=5; j++){
cima++;
listaPila[cima]= ct-1;
ct=ct-2;
}
}
}

Más contenido relacionado

La actualidad más candente

8. Multi List (Struktur Data)
8. Multi List (Struktur Data)8. Multi List (Struktur Data)
8. Multi List (Struktur Data)Kelinci Coklat
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)Kelinci Coklat
 
MySQL Indexing : Improving Query Performance Using Index (Covering Index)
MySQL Indexing : Improving Query Performance Using Index (Covering Index)MySQL Indexing : Improving Query Performance Using Index (Covering Index)
MySQL Indexing : Improving Query Performance Using Index (Covering Index)Hemant Kumar Singh
 
Funcionamiento de un pila
Funcionamiento de un pilaFuncionamiento de un pila
Funcionamiento de un pilajefer
 
Teori bahasa dan automata2
Teori bahasa dan automata2Teori bahasa dan automata2
Teori bahasa dan automata2Nurdin Al-Azies
 
Exposicion _bucket _sort
Exposicion _bucket _sortExposicion _bucket _sort
Exposicion _bucket _sortadrianasl
 
MySQL: Indexing for Better Performance
MySQL: Indexing for Better PerformanceMySQL: Indexing for Better Performance
MySQL: Indexing for Better Performancejkeriaki
 
Estructuras de datos osvaldo cairo
Estructuras de datos   osvaldo cairoEstructuras de datos   osvaldo cairo
Estructuras de datos osvaldo cairoYossLu Molina
 
Stack and its Applications : Data Structures ADT
Stack and its Applications : Data Structures ADTStack and its Applications : Data Structures ADT
Stack and its Applications : Data Structures ADTSoumen Santra
 
Algoritmos intercalación
Algoritmos intercalaciónAlgoritmos intercalación
Algoritmos intercalaciónPaul Arévalo
 
Window functions in MySQL 8.0
Window functions in MySQL 8.0Window functions in MySQL 8.0
Window functions in MySQL 8.0Mydbops
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesJosé Antonio Sandoval Acosta
 
Nat, List and Option Monoids - from scratch - Combining and Folding - an example
Nat, List and Option Monoids -from scratch -Combining and Folding -an exampleNat, List and Option Monoids -from scratch -Combining and Folding -an example
Nat, List and Option Monoids - from scratch - Combining and Folding - an examplePhilip Schwarz
 
Stored-Procedures-Presentation
Stored-Procedures-PresentationStored-Procedures-Presentation
Stored-Procedures-PresentationChuck Walker
 
MySQL Timeout Variables Explained
MySQL Timeout Variables Explained MySQL Timeout Variables Explained
MySQL Timeout Variables Explained Mydbops
 

La actualidad más candente (20)

8. Multi List (Struktur Data)
8. Multi List (Struktur Data)8. Multi List (Struktur Data)
8. Multi List (Struktur Data)
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
 
MySQL Indexing : Improving Query Performance Using Index (Covering Index)
MySQL Indexing : Improving Query Performance Using Index (Covering Index)MySQL Indexing : Improving Query Performance Using Index (Covering Index)
MySQL Indexing : Improving Query Performance Using Index (Covering Index)
 
Funcionamiento de un pila
Funcionamiento de un pilaFuncionamiento de un pila
Funcionamiento de un pila
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Teori bahasa dan automata2
Teori bahasa dan automata2Teori bahasa dan automata2
Teori bahasa dan automata2
 
Exposicion _bucket _sort
Exposicion _bucket _sortExposicion _bucket _sort
Exposicion _bucket _sort
 
MySQL: Indexing for Better Performance
MySQL: Indexing for Better PerformanceMySQL: Indexing for Better Performance
MySQL: Indexing for Better Performance
 
Colas estáticas. IESIT
Colas estáticas. IESITColas estáticas. IESIT
Colas estáticas. IESIT
 
Tree and Binary Search tree
Tree and Binary Search treeTree and Binary Search tree
Tree and Binary Search tree
 
Estructuras de datos osvaldo cairo
Estructuras de datos   osvaldo cairoEstructuras de datos   osvaldo cairo
Estructuras de datos osvaldo cairo
 
Stack and its Applications : Data Structures ADT
Stack and its Applications : Data Structures ADTStack and its Applications : Data Structures ADT
Stack and its Applications : Data Structures ADT
 
Algoritmos intercalación
Algoritmos intercalaciónAlgoritmos intercalación
Algoritmos intercalación
 
Window functions in MySQL 8.0
Window functions in MySQL 8.0Window functions in MySQL 8.0
Window functions in MySQL 8.0
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras Lineales
 
Nat, List and Option Monoids - from scratch - Combining and Folding - an example
Nat, List and Option Monoids -from scratch -Combining and Folding -an exampleNat, List and Option Monoids -from scratch -Combining and Folding -an example
Nat, List and Option Monoids - from scratch - Combining and Folding - an example
 
Stored-Procedures-Presentation
Stored-Procedures-PresentationStored-Procedures-Presentation
Stored-Procedures-Presentation
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
MySQL Timeout Variables Explained
MySQL Timeout Variables Explained MySQL Timeout Variables Explained
MySQL Timeout Variables Explained
 

Similar a La torre de hanoi segundo lab (20)

Pilas
PilasPilas
Pilas
 
Pilas
PilasPilas
Pilas
 
Pilas
PilasPilas
Pilas
 
S6-EDD-3.2 Pilas y colas
S6-EDD-3.2 Pilas y colasS6-EDD-3.2 Pilas y colas
S6-EDD-3.2 Pilas y colas
 
2- TDA Listas
2- TDA Listas2- TDA Listas
2- TDA Listas
 
Entrega de reporte no 1, lab 1
Entrega de reporte no 1, lab 1Entrega de reporte no 1, lab 1
Entrega de reporte no 1, lab 1
 
Documento6
Documento6Documento6
Documento6
 
Unidad iii pilas y colas
Unidad iii pilas y colasUnidad iii pilas y colas
Unidad iii pilas y colas
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
Unidad iii Pilas y colas
Unidad iii Pilas y colasUnidad iii Pilas y colas
Unidad iii Pilas y colas
 
Pila dinamica y pila estatica
Pila dinamica y pila estaticaPila dinamica y pila estatica
Pila dinamica y pila estatica
 
Parte 15
Parte 15Parte 15
Parte 15
 
Pila vacia
Pila vaciaPila vacia
Pila vacia
 
Apache Storm: Desarrollo
Apache Storm: DesarrolloApache Storm: Desarrollo
Apache Storm: Desarrollo
 
Pilas
PilasPilas
Pilas
 
Codigo para implementar pilas en java
Codigo para implementar pilas en javaCodigo para implementar pilas en java
Codigo para implementar pilas en java
 
Reporte de grafos con semagforos de 3,3,4 y 6 procesos
Reporte de grafos con semagforos de 3,3,4 y 6 procesosReporte de grafos con semagforos de 3,3,4 y 6 procesos
Reporte de grafos con semagforos de 3,3,4 y 6 procesos
 
Java
JavaJava
Java
 
Curso-PROPE-PyED-5-Pilas-Colas-programacion
Curso-PROPE-PyED-5-Pilas-Colas-programacionCurso-PROPE-PyED-5-Pilas-Colas-programacion
Curso-PROPE-PyED-5-Pilas-Colas-programacion
 
Pilas Struct
 Pilas Struct Pilas Struct
Pilas Struct
 

Último

Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptxCiberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptxcorreafrancoci00
 
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptxCIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptxalzabenjaminci00
 
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptxTECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptxUPSE
 
Especificación casos de uso del negocio
Especificación  casos de uso del negocioEspecificación  casos de uso del negocio
Especificación casos de uso del negocioMagemyl Egana
 
Modelado de Casos de uso del negocio
Modelado de  Casos  de  uso  del negocioModelado de  Casos  de  uso  del negocio
Modelado de Casos de uso del negocioMagemyl Egana
 
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdfTECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdfUPSE
 
El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)Samuel Solís Fuentes
 
Tipos de datos en Microsoft Access definiciones.pdf
Tipos de datos en Microsoft Access definiciones.pdfTipos de datos en Microsoft Access definiciones.pdf
Tipos de datos en Microsoft Access definiciones.pdfCarlosSanchez452245
 
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...juanforero141
 

Último (9)

Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptxCiberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
 
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptxCIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptx
 
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptxTECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
 
Especificación casos de uso del negocio
Especificación  casos de uso del negocioEspecificación  casos de uso del negocio
Especificación casos de uso del negocio
 
Modelado de Casos de uso del negocio
Modelado de  Casos  de  uso  del negocioModelado de  Casos  de  uso  del negocio
Modelado de Casos de uso del negocio
 
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdfTECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
 
El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)
 
Tipos de datos en Microsoft Access definiciones.pdf
Tipos de datos en Microsoft Access definiciones.pdfTipos de datos en Microsoft Access definiciones.pdf
Tipos de datos en Microsoft Access definiciones.pdf
 
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
 

La torre de hanoi segundo lab

  • 1. LA TORRE DE HANOI Las Torres de Hanói es un rompecabezas o juego matemático inventado en 1883 por el matemático francés Éduard Lucas. Este solitario se trata de un juego de ocho discos de radio creciente que se apilan insertándose en una de las tres estacas de un tablero. El objetivo del juego es crear la pila en otra de las estacas siguiendo unas ciertas reglas. El problema es muy conocido en la ciencia de la computación y aparece en muchos libros de texto como introducción a la teoría de algoritmos. CODIGO DE (MAIN) package TORRE; import TipoPila.pila; import java.util.Scanner; import java.util.logging.Level; import java.util.logging.Logger; public class principal { public static void main(String[] args) throws Exception { //creacion las tres torres pila torre1 = new pila(); pila torre2 = new pila(); pila torre3 = new pila(); torre1.llenar(); torr (5, torre1, torre2, torre3); while(!torre3.pilaVacia()) torre3.imprimePila(); } // metodo hanoi donde recibe los cuatro parametros static void torr (int dis,pila t1,pila t2,pila t3) throws Exception{ if(dis==1){ t3.insertar(t1.quitar()); } // recursividad else{ torr(dis-1, t1, t3, t2); torr(1, t1, t2, t3); torr (dis-1, t2, t1, t3); } } }
  • 2. CODIGO DE LA (CLASE) package TipoPila; public class pila { private int TAMPILA = 5; private int cima; private final int[] listaPila; // el siguiente metodo es el constructor de la clase,ayuda en la inicializacion // de la misma public pila() { //estado inicial de la pila cima= -1; listaPila= new int[TAMPILA]; } //Operaciones que modifican la pila public void insertar(int elemento) throws Exception{ if (pilaLlena()){ throw new Exception("Desbordamiento de la Pila"); } cima++; listaPila[cima]=elemento; } public int quitar() throws Exception{ int aux; if (pilaVacia()){ throw new Exception("Pila Vacia"); } //Guarda el elemento de la cima aux=listaPila[cima]; //decrementa el elemento de la cima y devuelve el elemento cima--; return aux; } public int cimaPila() throws Exception{ if (pilaVacia()){ throw new Exception("Pila Vacia no hay elementos"); } return listaPila[cima];
  • 3. } //Metodos para verificacion del estado de la pila--- public boolean pilaVacia(){ return cima == -1; } public boolean pilaLlena(){ return cima == TAMPILA -1; } public void limpiarPila(){ cima = -1; } // impresion [salida] public void imprimePila(){ int a = 0; try { while (!pilaVacia()){ a=quitar(); System.out.println(a+ " "); } }catch (Exception e){ System.out.print("Excepcion :" + e); } } // llenado de la pila para mostrarla public void llenar(){ int ct=11; for(int j = 1; j<=5; j++){ cima++; listaPila[cima]= ct-1; ct=ct-2; } } }