Esta página se tradujo automáticamente con la API de traducción de Google Cloud.
Algunas páginas se pueden leer mejor en su totalidad.
Una pila es una estructura de datos básica que puede pensarse lógicamente como una estructura lineal representada por una pila o pila física real, que es una estructura donde los objetos se apilan uno encima del otro. El principio básico de una pila es que el último elemento que se inserta en la pila será el primero en ser eliminado.
Una pila es una estructura de datos restringida porque tiene un orden predefinido en el que se pueden realizar las operaciones. El orden está restringido a LIFO (Last In First Out).
Hay muchos ejemplos del mundo real de pilas. Algunos ejemplos son los siguientes:
Una pila se puede implementar usando una matriz o una lista enlazada. En esta publicación, discutiremos la implementación de una pila usando una matriz.
La implementación de una matriz de una pila es muy simple. Solo necesitamos mantener una variable que realice un seguimiento del elemento superior de la pila. El elemento superior es el último elemento que se agregó a la pila.
Las siguientes operaciones se pueden realizar en una pila:
La siguiente es la implementación de una pila usando una matriz en el lenguaje de programación C:
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 10
struct stack
{
int top;
int items[MAXSIZE];
};
struct stack* createStack()
{
struct stack* s = (struct stack*) malloc(sizeof(struct stack));
s->top = -1;
return s;
}
int isEmpty(struct stack* s)
{
return (s->top == -1);
}
int peek(struct stack* s)
{
if (!isEmpty(s))
return s->items[s->top];
return -1;
}
void push(struct stack* s, int x)
{
if (s->top == MAXSIZE-1)
{
printf("Stack overflow\n");
return;
}
s->items[++s->top] = x;
}
int pop(struct stack* s)
{
if (isEmpty(s))
{
printf("Stack underflow\n");
return -1;
}
return s->items[s->top--];
}
int main()
{
struct stack* s = createStack();
push(s, 1);
push(s, 2);
push(s, 3);
printf("%d popped from stack\n", pop(s));
printf("Top element is %d\n", peek(s));
return 0;
}
Producción:
3 popped from stack
Top element is 2
En el programa anterior, hemos creado una pila de tamaño MAXSIZE=10. La variable superior almacena el índice del elemento superior de la pila. La operación de inserción agrega un elemento a la parte superior de la pila y la operación de extracción elimina un elemento de la parte superior de la pila. La operación peek devuelve el elemento en la parte superior de la pila sin eliminarlo. La operación isEmpty devuelve verdadero si la pila está vacía, falso en caso contrario.
Las pilas tienen muchas aplicaciones en informática. Algunas de las aplicaciones de las pilas son las siguientes: