Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pilas
Pilas
Stacks (Pilas)
2
Estructuras de Datos
Stacks (Pilas)
11
El TDA Stack (Pila)
• Un número finito de objetos
• No necesariamente distintos (pueden haber repetidos)
• Tienen el mismo tipo de datos
• LIFO (last in, first out: último en entrar, primero en salir)
Operaciones
• isEmpty(): ¿está el stack vacío?
• push(newEntry): agregar newEntry al stack
• pop(): remover el elemento agregado más recientemente
• peek(): consultar el elemento agregado más
recientemente
• http://www.cs.armstrong.edu/liang/animation/web/Stack.
html
6
Estructuras de Datos
Stacks (Pilas)
10
Para prevenir estas situaciones, se usará la macro assert, de la
biblioteca <assert.h>. Esta macro verifica que se cumpla una
condición; de no ser así, finaliza el programa con un mensaje de error.
11
Implementación de un stack con un array
stack.h
12
Implementación de un stack con un array
stack_array.c (parte 2)
1/
13
Implementación de un stack con un array
stack_array.c (parte 2/2)
14
Estructuras de Datos
Stacks (Pilas)
16
Implementación de un stack: nodos enlazados
stack_linked.h (parte 1/2)
El uso de #ifndef previene que un archivo de cabecera se incluya más de una vez 17
Implementación de un stack: nodos enlazados
stack_linked.h (parte 2/2)
18
Implementación de un stack: nodos enlazados
stack_linked.c (parte 1/3)
19
Implementación de un stack: nodos enlazados
stack_linked.c (parte 2/3)
20
Implementación de un stack: nodos enlazados
stack_linked.c (parte 3/3)
21
En resumen
• Stacks (pilas) son TDAs que aplican el principio LIFO