miércoles, 1 de octubre de 2014

3.2.3 Aplicaciones

Las operaciones que se presentan en esta aplicación son las siguientes:
OPERACIÓN PUSH
Esta operación sirve para insertar un elemento e en la pila S, lo vamos a escribir como:
push(S,e)
Después de hacer esta operación sucede que:
El elemento en la cima de la pila S ahora es e
LA OPERACIÓN POP
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, usaremos la operación pop escribiéndola como:
v=pop(S);
En donde v es una variable que almacena el valor del elemento que estaba en la cima de S. Hacer esta operación tiene algunas implicaciones:
La variable v debe ser del mismo tipo que los elementos almacenados en la pila.
Solamente se puede retirar un elemento de la pila a la vez.
Antes de la operación, e era el elemento en la cima, ahora ya no lo es más. El apuntador ``cima'' decrece en una unidad.
LA OPERACIÓN STACKEMPTY
Esta operación toma como argumento una estructura del tipo stack (pila) y devuelve un valor booleano, devuelve un true si la pila está vacía y devuelve un false si la pila tiene al menos un elemento.
LA OPERACIÓN STACKTOP
La operación stacktop(S) devuelve el valor del elemento en la cima de la pila S. Para hacer esta operación escribiremos:
v=stacktop(S)
Las implicaciones de usar esta operación son:
Se hace una copia del elemento que está en la cima
En realidad se hacen dos operaciones, primero se hace v=pop(S), luego un push(S,v), porque después de la operación stacktop, la pila S queda sin cambio alguno.
Para ver aplicaciones con pilas, en pseudocódigo queda de la siguiente forma:
// Inserción en Pilas de forma tradicional

principal()
{
  // declaracion de variables
   top = 0; Pila[10]=0; Dato=0;N=10;

   do
   {
      pedir " de el numero a insertar :";
      Leer Dato;
      // Verificar si hay lugar en pila
        si(top >= N) entonces
         { Desplegar " Pila llena";}
        sino
           {     pila[top]=Dato;
                 top = top + 1;
            }
      preguntar " Desea otra insercion en pila :",
      Leer otro;
    }while(otro != "No");

}

3.2.2 Operaciones Básicas con pilas.

Las dos operaciones principales de una pila a añadir elementos a la pila y tomando elementos de la pila.
La operación de inserción agrega un elemento a una pila.
Tomamos un elemento de la pila con una operación de pop.
La otra operación principal para llevar a cabo en una pila está viendo el primer elemento.
La operación Pop devuelve el primer elemento, pero la operación también se elimina de la pila. Queremos ver sólo el primer elemento sin llegar a eliminar. Esta operación se llama ojeada en C#.

La otra operación principal para llevar a cabo en una pila está viendo el primer elemento. La operación Pop devuelve el primer elemento, pero la operación también se elimina de la pila. Queremos ver sólo el primer elemento sin llegar a eliminar. Esta operación se llama ojeada en C#.

3.2.1 Representación en memoria estática y dinámica

Definición de Pila: Es una lista lineal en la que las inserciones y supresiones, se hacen en un extremo de la lista.

Ejemplos clásicos de la vida cotidiana seria una pila de platos, una pila de monedas, una pila de billetes, en cada pila se va tomando el de arriba, es decir el de encima, así mismo pasa con las pilas se inserta y se elimina por arriba.

Las Operaciones básicas que se realizan con pilas son meter elementos en la pila, y sacar elementos de la pila, a esto se le conoce como Push y Pop.

A las pilas también se les conoce como LIFO, por sus siglas en ingles last in firt out, que significa ultimo en entrar, primero en salir. 

Operaciones asociadas con la pila
Crear la pila
Ver si la pila esta vacía
Insertar elementos en la pila
Eliminar un elemento de la pila
Vaciar la pila





3.2. Pilas

La pila es una de las estructuras de uso más frecuente de datos, como acabamos de mencionar.
Se define una pila como una lista de elementos que sólo son accesibles desde el final de la lista, que se llama la parte superior de la pila.
El modelo estándar de una pila es la pila de bandejas en una cafetería. Las bandejas son retiradas de la parte superior, y el que la lavadora de platos o ayudante de camarero pone una bandeja en la pila, se coloca en la parte superior también
• Una pila es conocido como un último en entrar, primero en salir (LIFO) estructura de datos.
Las dos operaciones principales de una pila a añadir elementos a la pila y tomando elementos de la pila.
La operación de inserción agrega un elemento a una pila.
Tomamos un elemento de la pila con una operación de pop.
La otra operación principal para llevar a cabo en una pila está viendo el primer elemento.
La operación Pop devuelve el primer elemento, pero la operación también se elimina de la pila. Queremos ver sólo el primer elemento sin llegar a eliminar. Esta operación se llama ojeada en C#.
La otra operación principal para llevar a cabo en una pila está viendo el primer elemento. La operación Pop devuelve el primer elemento, pero la operación también se elimina de la pila. Queremos ver sólo el primer elemento sin llegar a eliminar. Esta operación se llama ojeada en C#.
Para ver aplicaciones con pilas, en pseudocódigo queda de la siguiente forma:
//Inserción en Pilas de forma tradicional
 principal()
{
  // declaración de variables
   top = 0; Pila[10]=0; Dato=0;N=10;

   do
   {
      pedir " de el numero a insertar :";
      Leer Dato;
      // Verificar si hay lugar en pila
        si(top >= N) entonces
         { Desplegar " Pila llena";}
        sino
           {     pila[top]=Dato;
                 top = top + 1;
            }
      preguntar " Desea otra inserción en pila :",
      Leer otro;
    }while(otro != "No");

}

3.1.6.Aplicaciones con Listas

Las aplicaciones puede ser una infinidad de procesos, entre ellos podemos encontrar:
La lista de pasajeros de una aerolínea.
Un directorio telefónico electrónico.


Estos son ejemplos de aplicaciones con listas.

3.1.5 listas circulares

Para este tipo de listas se dice que aquí las lista ligada circular es aquella donde el último dato se enlaza con el primero, es decir, es similar a la lista enlazada simple solo que este se enlaza el último dato con el primero.
Donde:
Dato
Es el valor de la lista.
Siguiente
Es el enlace, posición que nos da el siguiente.
Ultimo

Es la última posición que enlaza al primer elemento.

3.1.4 lista doblemente enlazadas

Para este tipo de Lista se dice que es el dato que se liga con el anterior y el siguiente.
En el siguiente ejemplo gráfico se muestra cómo funciona una lista doblemente ligada.
Donde:
Información
Es el dato de la lista.
Anterior
Es la Posición donde se encuentra el dato anterior.
Siguiente
Es la Posición donde se encuentra el dato siguiente.
Las listas doblemente enlazadas consisten en datos y enlaces tanto al elemento siguiente como al elemento anterior. Con lo que se consiguen dos grandes ventajas, primero la lista se puede leer en cualquier dirección, la segunda es que se pueden leer los enlaces hacia delante como hacia atrás, con lo que si un enlace resulta no valido se puede reconstruir utilizando el otro enlace.
Como en las listas simplemente enlazadas, las doblemente enlazadas pueden contener una función que almacene cada elemento en una posición específica de la lista a medida que esta se construye, en lugar de colocar cada elemento al final de la lista.

Una lista doblemente enlazada es una lista lineal en la que cada nodo tiene 2 enlaces un nodo llamado siguiente y otro nodo llamado anterior.