1 / 18

Pilas

Pilas. 2.1 Objetivos. El estudiante manejará el tad Pila contigua. 2.2 Temas a Cubrir. Definición Operaciones sobre Pilas Apilar (push) Desapilar (pop) Cima (top) Vacía? Implementación de Pilas. 2.3 Definición.

shalin
Download Presentation

Pilas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pilas 1

  2. 2.1 Objetivos • El estudiante manejará el tad Pila contigua. 3

  3. 2.2 Temas a Cubrir • Definición • Operaciones sobre Pilas • Apilar (push) • Desapilar (pop) • Cima (top) • Vacía? • Implementación de Pilas 4

  4. 2.3 Definición • Una pila (stack en inglés) es una estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. 5

  5. 2.4 Operaciones sobre Pilas • Apilar (push) • Desapilar (pop) • Cima (top) • Vacía? 6

  6. 2.4.1 Apilar (push) • Esta operación sirve para insertar un elemento e en la pila S • push(S,e) 7

  7. 2.4.2 Desapilar (pop) • Se usa para retirar un elemento de la pila S y asignarlo a una variable del mismo tipo que el tipo de los elementos de la pila • v=pop(S); 8

  8. 2.4.3 Cima (top) • La operación top(S) devuelve el valor del elemento en la cima de la pila S. • v=top(S) 9

  9. 2.4.4 Vacía? • Toma como argumento una estructura del tipo stack (pila) y devuelve un valor booleano: true si la pila está vacía o false si la pila tiene al menos un elemento 10

  10. 1 4 1 1 1 1 1 4 4 4 4 4 4 push(4) pop() pop() push(1) push(1) push(4) 11

  11. 2.4.5 Ejemplo 1 • Navegador Web • Se almacenan los sitios previamente visitados • Cuando el usuario quiere regresar (presiona el botón de retroceso), simplemente se extrae la última dirección (pop) de la pila de sitios visitados. • Editores de texto • Los cambios efectuados se almacenan en una pila • Usualmente implementada como arreglo • Usuario puede deshacer los cambios mediante la operación “undo”, la cual extraer el estado del texto antes del último cambio realizado. 12

  12. 2.4.5 Ejemplo 2 • Una de las condiciones para que sea una expresión aritmética correcta en que tengas sus paréntesis balanceados (deseamos saber si el número de paréntesis que se abren es el mismo número de paréntesis que cierran) • ((5+6)*4)/(17+9) 13

  13. 2.5 Implementación de Pilas #define MAX 100 struct stack { int item[MAX]; int top; }; struct stack S; 14

  14. 2.5.1 Push void push(struct stack *S, int e){ S->top++; S->item[S->top]=e; } 15

  15. 2.5.2 Pop int pop(struct stack *S){ int valReturn; valReturn=S->item[S->top]; S->top--; return valReturn; } 16

  16. 2.5.3 Top 17

  17. 2.5.3 Vacía? 18

  18. Tarea # 2 (entrega 3 marzo 2009) • Escriba un programa en C que solicite una expresión aritmética que use varios paréntesis y que, por medio de un stack (usando push, pop y vacía?), verifique si la expresión ttiene el mismo número de paréntesis abiertos que cerrados. 19

More Related