Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

205
Views
¿Qué tipo de estructura de datos de pila debo usar?

Estoy escribiendo un algoritmo que resuelve un laberinto y tengo un laberinto llamado char [] [] maze. Sus elementos ser como;

 {1,1,1,1,1,1, ..}, {1,0,1,0,1,1, ..}, {1,0,0,1,0,1, ..}, ...

Hay 13 Filas y 17 Columnas. Tengo que resolverlo usando la estructura de datos de fragmentos. Según el algoritmo que he configurado en mi mente, necesito almacenar los valores de índice de la ruta navegable en esta pila. Por ejemplo, según el laberinto anterior:

 0,0 0,1 0,2 0,3 0,4 1,4 1,5 2,5...

Solía mantener un número entero en mis ejemplos anteriores, así que usé una estructura como esta al implementar la construcción de pilas.

 public class Stack { int topOfStack; int capacity; int[] Stack; public Stack(int capacity) { this.capacity = capacity; Stack = new int[capacity]; topOfStack = -1; } void push(int element) { if(topOfStack == capacity){ System.out.println("Stack Overflow..."); } else{ topOfStack++; Stack[topOfStack] = element; } } }

Mi pregunta es exactamente esta. ¿Cómo puedo modificar esta estructura de pila para mi programa de resolución de laberintos? Si necesito volver a indicarlo, debo mantener las coordenadas o algo similar en la pila, no los números enteros. Muchas gracias.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Puede crear un nuevo objeto de clase que se llame Coordenadas. Esta clase tendrá dos parámetros principales que son X e Y. Luego, puede hacer un atascado que se llene con este objeto de coordenadas en lugar de un entero simple.

El atascado que está construyendo puede ser genérico y contener estructuras más complejas que la básica y esto es lo que está buscando en este ejemplo.

over 4 years ago · Santiago Trujillo Report

0

En pocas palabras , se podría usar una matriz 2D para almacenar las coordenadas:

 public class Stack { int topOfStack; int capacity; int[][] stack; public Stack(int capacity) { this.capacity = capacity; stack = new int[capacity][2]; topOfStack = -1; } void push(int x, int y) { if(topOfStack == capacity){ System.out.println("Stack Overflow..."); } else{ stack[++topOfStack] = new int[] { x, y }; } } int[] pop() { if (topOfStack < 0) { System.out.println("Stack is empty"); return null; } return stack[topOfStack--]; } }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!