A2A
Creo que implementar una pila usando Singly Linked List es un enfoque mejor y más fácil. Suponiendo que está implementando una pila de enteros.
El encabezado de la lista vinculada se trataría como stack top .
- ¿Cuál será el algoritmo de rotación correcto en C?
- ¿Cuál es el problema de programación más difícil que haya resuelto?
- ¿Cuáles son algunas aplicaciones del mundo real en las que es útil el aprendizaje incremental de algoritmos (aprendizaje automático)? ¿Se prefieren las SVM para tales aplicaciones?
- ¿Tengo que aprender estructuras de datos antes de aprender algún lenguaje de programación?
- ¿Qué debo hacer para mejorar el pensamiento algorítmico, especialmente para la programación dinámica?
Push : esta operación es una inserción clásica en la primera operación en la lista vinculada.
Pop : esta operación es una operación clásica de eliminación del primer nodo en la lista vinculada.
A continuación se muestra la implementación de Java:
clase LLNode {
datos int;
LLNode siguiente;
LLNode público (datos int) {
this.data = datos;
}
}
pila de clase {
top privado de LLNode;
public boolean isEmpty () {
if (top == null) {
volver verdadero;
}
falso retorno;
}
public void push (datos int) {
// Crear un nodo
Nodo LLNode = nuevo LLNode (datos);
// Insertar este nuevo nodo al inicio
if (top == null) {
top = nodo;
} más {
node.next = top;
top = nodo;
}
}
public int pop () {
if (isEmpty ()) {
// Puede devolver algún valor no válido, lanzar excepción.
return Integer.MIN_VALUE;
}
int data = top.data;
// Eliminar nodo de puño
top = top.next;
devolver datos;
}
}
Disculpe los errores tipográficos / sintácticos en el código. Espero que esto ayude. Avíseme si tiene alguna pregunta, sugerencia o algún error.