Cómo imprimir un elemento emergente en la pila

Tomemos un ejemplo de una pila de enteros.

Asumir pila = {1, 2, 3, 4}

| ^^^^^^^^^ |
El | 1 | —-> Parte superior de la pila
El | El |
| ^^^^^^^^^ |
El | 2 |
El | El |
| ^^^^^^^^^ |
El | 3 |
El | El |
| ^^^^^^^^^ |
El | 4 | —-> Parte inferior de la pila
El | El |
^^^^^^^^^^^

Nota: – Todos los ejemplos a continuación serán con referencia a C ++

Explicaré la lógica y no escribiré el código completo simplemente porque PIENSA (y también está disponible fácilmente en línea).

  1. Establezca el retorno a int (desde la pila de enteros) en lugar de void.

// Suponiendo que tienes una clase llamada como clase de pila
// Función para hacer estallar el elemento de la pila
int Stack :: pop ()
{
int popped_element;
/ * Apila la lógica Pop aquí
Establezca el valor del elemento Popped en popped_element (sugerencia: – Top of Stack)
Si la pila está vacía, devuelva el valor apropiado.
* /

return popped_element;

} // End_of_Pop_function

2. En main () mientras aparece, obtenga el valor del elemento emergente.

int main ()
{
pila de clase s;

/ * Su lógica de programa * /

std :: cout << "\ nElemento copiado:" << s.pop ();

} // Fin_de_principal

Entonces, la salida para la primera ejecución de pop () será

Elemento reventado: 1

Y la pila se vería así

| ^^^^^^^^^ |
El | 2 | —-> Parte superior de la pila
El | El |
| ^^^^^^^^^ |
El | 3 |
El | El |
| ^^^^^^^^^ |
El | 4 | —-> Parte inferior de la pila
El | El |
^^^^^^^^^^^

Gracias.

Puede imprimirlo y luego eliminarlo de la pila (o disminuir la parte superior) O puede almacenarlo en una variable temporal.

Siempre es mejor devolver el elemento emergente de Pop ().

En la implementación de matriz, puede escribir pop () como:

tipo Pop ()
{
si (no está vacío ())
pila de retorno [arriba–];
}

En la implementación de la lista vinculada, debe usar un nodo temporal y copiar los valores desde el nodo superior. Después de eso, elimine el nodo superior y devuelva el nodo temporal.

tipo * Pop ()
{
nodo * temp = nuevo nodo;
/ * usando el nuevo operador de C ++, use malloc () en C o la función de asignación respectiva del lenguaje * /

temp = top;
temp-> next = NULL

If (arriba-> siguiente! = NULL)
top = top-> siguiente;
Más
top = NULL;

temperatura de retorno;
}

Ahora puede imprimir directamente mientras llama a Pop () si no tiene la intención de usar el valor emergente por cualquier otro motivo; de lo contrario, puede almacenar el valor en otra variable. Debido al valor de retorno, puede usar la función call en sí misma como una variable de uso único.

// push y pop y muestra el elemento en la pila
#include
int stack [5], arriba;
principal()
{
elección de char;
int ele;
printf (“1: push 2: pop: 3: display”);
printf (“ingrese la opción \ n”);
scanf (“% c”, & elección);

interruptor (elección)
{
caso 1: si (arriba <5)
{
printf (“ingrese el elemento \ n”)
scanf (“% d”, & ele);
empujar (ele);
descanso;
}

más
{
printf (“la pila es desbordamiento”);
descanso;
}

caso 2: si (arriba> 0)
{
pop (arriba);
descanso;
}

más
printf (“la pila está bajo flujo \ n”);

caso 3: pantalla ();
descanso;
}
empuje nulo (int ele)
{
stk [top ++] = ele;
}

void pop ()
{
parte superior-;
printf (“elemento poped% d”, stack [top]);
}

pantalla vacía ()
{
int i;
para (i = 0; i printf (“% d”, stack [top]);
}

Use el valor devuelto por la subrutina pop en la declaración de impresión.

int POP (s)
si STACK_EMPTY (s) == VERDADERO
volver “ERROR”
más
s.Top = s.Top – 1 // Disminuyendo el tamaño
// para que el objeto ya no esté en la pila
volver s [s.Top +1]
// devuelve el Objeto que está siendo expulsado.

// Ahora imprímelo;
imprimir POP (s);

Probablemente tenga acceso al elemento superior de su pila (o su implementación de pila es defectuosa). Simplemente imprima el elemento superior primero (o haga lo que quiera con él), luego revíselo.

More Interesting

¿Cuándo sería el algoritmo A más lento que el algoritmo B? Demuestre su respuesta con la ayuda de un ejemplo.

¿Cómo puedo mover puntos colocados al azar con un radio de 'visión' en una línea para cubrir completamente la línea y minimizar la distancia total recorrida?

¿Qué detección atípica incremental existe en un escenario de flujo de datos?

¿Qué hace que un gran motor de 'recomendación de personas'?

¿Puedes darme una idea para un juego simple que implemente el algoritmo (como el algoritmo A *) o la inteligencia artificial para NPC en el juego?

¿Cuál es el algoritmo de Apache Hadoop?

¿Por qué no usamos el aprendizaje automático para mejorar los modelos climáticos?

¿Cuáles son las capacidades máximas de almacenamiento de las estructuras de datos (pila, cola, listas enlazadas)?

Cómo crear mi propio algoritmo de compresión básico para archivos

Cómo obtener el índice de clasificación de matriz

Con la complejidad de O (n) u O (1) u O (log n), ¿cómo encuentro cuándo se romperá una bola rompible cuando se lance desde un piso de un edificio que tiene más de 100 pisos?

Cómo generar todas las permutaciones de fila de una matriz 2D dada de forma recursiva

¿De qué sirve el hashing en C?

¿Cuál es la mejor función hash que está disponible para identificar cadenas de forma exclusiva?

¿Cuáles son los ejemplos prácticos de algoritmos de clasificación? He oído hablar de la clasificación de burbujas, la clasificación rápida y la clasificación por inserción. ¿Cuáles son los ejemplos prácticos de estos algoritmos? ¿Para qué se usan y dónde son necesarios en los sistemas de software?