Esructuras de datos - pilas

Solo disponible en BuenasTareas
  • Páginas : 5 (1231 palabras )
  • Descarga(s) : 0
  • Publicado : 24 de febrero de 2012
Leer documento completo
Vista previa del texto
Concepto De Pila e Implementación.

Volviendo a recordar ciertas cosas que en teoría conocemos, ahora hablaremos acerca de las pilas. Para empezar, hay que reconocer lo que es una pila. Podemos decir que una pila es una estructura de datos que obedece siguiente disciplina: “LIFO (Last In, First Out): El último en entrar es el primero en salir”.

Las funciones principales asociadas con las pilasson las siguientes: Push. Insertar un elemento. Pop. Extraer un elemento. Veamos cómo se vería el ingreso y extracción de elementos en una pila por medio de la siguiente imagen:

Cuando nosotros tenemos por ejemplo la siguiente operación en notación sufija: 73–21+* Se implementa una pila para esto, de modo que tendríamos lo siguiente:

La forma en la cual se lee esto es la siguiente: Cuando se leeun operando (número), se ingresa a la pila. Al momento de leer un operador, como en el primer caso que fue el de suma (+), se toman los últimos dos números ingresados a la pila y se realiza la operación ingresada para tener un nuevo valor. Se vuelven a leer números y se van ingresando a la pila y al momento de ingresar un operador se leen los últimos dos elementos de la estructura para realizarla operación. Todo esto hasta terminar. Quizás no quedo muy claro, por lo que se los expondré así: Visualicen cuando manejamos nuestros programas con subrutinas. Estamos haciendo un proceso en nuestra función main, y de repente necesitamos un resultado que debe adquirirse por medio de una función. Entonces, es como si el proceso de main estuviera dentro de una pila, y al momento de mandar llamar lafunción que necesitamos, ésta es introducida a la pila. Al momento que la función termina lo que debe de hacer, es como si la función saliera de la pila dejándole o devolviéndole el valor que obtuvo a main para que pueda continuar con el proceso en el cual se quedó. Nosotros manejamos pilas a cada momento, no sólo en el manejo de subrutinas, sino también por ejemplo las vemos en las siguientesaplicaciones: Historial de Internet Portapapeles de Office Los botones de ATRÁS y ADELANTE del explorador de Windows e IE. Los documentos que se encuentran pendientes para imprimir obedecen el comportamiento LIFO. Entre otros. 1. Introducir datos a la pila 2. Borrar un dato de la pila 3. Mostrar elemento en el tope de la pila

4. Imprimir elementos de la pila Cada una de estas opciones está siendomanipulada a través de un SWITCH. Antes de proseguir, aclaro que en sí nuestra “PILA” está siendo implementada a través de lo que es un “ARRAY” de tamaño 15. Sé que no es precisamente la estructura de pila que quizás esperaban ver, pero recuerden que en sí el propósito de esta entrada es la comprensión del concepto pila. Ahora pasemos a detallar las acciones para cada función.

Introducir datos ala pila.
printf("\n\nDame el valor: "); scanf("%d", &temp); tope ++; pila[tope + 1] = temp; Nosotros tenemos una variable temp de tipo entero que funciona como la “celda” de nuestra pila donde vamos a estar guardando datos. Tenemos la variable de tipo entero llamada “tope”, que funciona como nuestro indicador de la cima de la pila, la cual, a la vez, también le asignamos el valor de “-1”. Despuésexplicaremos por qué se usó de esta forma. Nuestra “pila” como ya mencionamos, es un arreglo “pila[15]”. Pasando al proceso del ingreso de datos a la pila, nosotros ingresamos un número que se guardará en la variable “temp”. Lo siguiente fue incrementar el valor de “tope” en una unidad, para después pasar a utilizar el valor de tope como índice de nuestro arreglo “pila”. ¿Recuerdan que “tope”valía al inicio “-1”? Esto fue así, debido a que al momento de ingresar el primer dato a la pila, ahora “tope” se incrementaría a “0”, y recuerden que los arreglos empiezan desde la posición “0”. A esto se debía la naturaleza de haber asignado el valor de “-1” a la variable que utilizaríamos como nuestro indicar de la cima de la pila. Por último, el valor de “temp” se asigna a la posición “tope” de...
tracking img