Tarea #2.

 

Colas:

Una Cola es una coleccion ordenada de elementos a partir de las cual se pueden eliminar elementos de un extremo(llamado frente de la cola) y en la cuel también se pueden agregar elementos en el otro extremo(llamado parte posterior de la cola).

Las colas son estructuras de tipo FIFO (first-in, first-out), ya que el primer elemento en entrar a la cola será el primero en salir de ella.

Existen muchísimos ejemplos de colas en la vida real, como por ejemplo: personas esperando en un teléfono público, niños esperando para subir a un juego mecánico, estudiantes esperando para subir a un camión escolar, etc.

Podemos representar a las colas de dos formas :

  • Como arreglos
  • Como listas ordenadas

Para trastar las colas como arreglos de elementos, debemos definir el tamaño de la cola y dos apuntadores, uno para accesar el primer elemento de la lista y otro que guarde el último.

Las operaciones que nosotros podemos realizar sobre una cola son las siguientes:

  • Inserción.
  • Extracción.

Las inserciones en la cola se llevarán a cabo por atrás de la cola, mientras que las eliminaciones se realizarán por el frente de la cola ( el primero en entrar es el primero en salir).

Lo descrito anteriormente sera ilustrado por medio de imagenes, para hacerlo mas claro:

Lo primero que se hace es crear una "cola."

 

Se va a trabajar con una cola de 17 elementos:

1 ,2 , ... ,17 .

En donde el 1 es el elemento al frente de la cola y el 17 el elemento posterior de la misma.

 

Cada que se agregan elementos debe ser al final de la cola. De esta manera se realiza una INSERCION la cual adiciona un elemento en la parte posterior de la cola.

 

La insercion siempre se puede realizar puesto que no existe límite en cuanto el numero de elementos que puede contener una cola.En este caso ya llegamos a los 17 con los que vamos a trabajar.

 

 

Se puede realizar una Extraccion en la cual se retira el elemento del frente de la cola.

 

Como se puede apreciar, en las colas siempre el primero en entrar es el priemero en salir y el ultimo en entrar el ultimo en salir.

 

La operación de eliminacion se puede aplicar unicamente si la cola no esta vacía, es decir no existe forma de remover un elemento de una cola que no contiene elementos.

 

//Trabaja con 10 elementos.

 int arr[10];

 void push(){

 int i;

  for (i=0; i<10;i++){

    scanf("%i",arr[i]);   } }

 void pop(){

 int i;

  for (i=0; i<10;i++){

    printf("%i \n",arr[i]);   } }

Este es el codigo de

un pequeño

programa que trabaja

con Colas, en Lenguaje C.

 

Listas:

Una Lista enlazada o encadenada es una colección de elementos ó nodos, en donde cada uno contiene datos y un enlace o liga.

Un nodo es una secuencia de caracteres en memoria dividida en campos (de cualquier tipo). Un nodo siempre contiene la dirección de memoria del siguiente nodo de información si este existe.

Un apuntador es la dirección de memoria de un nodo

El campo liga, que es de tipo puntero, es el que se usa para establecer la liga con el siguiente nodo de la lista. Si el nodo fuera el último, este campo recibe como valor NIL (vacío).

Algunas de las operaciones que podemos realizar sobre una lista enlazada se veran en las sig. imagenes:

Se crea una Lista

 

La Insercion:

consiste en agregar un nuevo nodo a la lista.

 

Para esta operación se pueden considerar tres casos:

  • Insertar un nodo al inicio.
  • Insertar un nodo antes o después de cierto nodo.
  • Insertar un nodo al final.

 

Para insertar un nodo en el cual almacenar inf., en una lista que debe de crecer,se debe de buscar un nodo vacio para ser agregado a la lista

 

EL Borrado:

La operación de borrado consiste en quitar un nodo de la lista, redefiniendo las ligas que correspondan.

 

Se pueden presentar cuatro casos:

  • Eliminar el primer nodo.
  • Eliminar el último nodo.
  • Eliminar un nodo con cierta información.
  • Eliminar el nodo anterior o posterior al nodo cierta con información.

 

Se puede llegar a tener un solo elemento que en este caso sera el ultimo en haber sido introducido y tendra el apluntador 1. Sera el primer, ultimo y unico elemento.

 

Si se borra el ultimo elemento se tendra nuevamente un lista vacia.

 

// Almacena una cadena de caracteres

de tamaño 60 o menor.

Nodo{

   char nom[60];

   Nodo *liga;  

}*tmp, *ptr, *aux, *auxap;

 void insertar(){

   int comp;

   tmp = (Nodo*) malloc(sizeof(Nodo));

   printf("Nombre: ");

   scanf("%s",tmp->nom);

   if (ptr->liga == NULL){     

      ptr->liga = tmp;

      tmp->liga = NULL;

    }else{

       aux = ptr->liga;

       comp = strncmp(aux->nom,tmp->nom,3);

 if (comp > 0) {

   tmp->liga = aux;

   ptr->liga = tmp;  }

 else{

   aux = ptr->liga;

    auxap = ptr;

    comp = 0;

    while ((comp <= 0) && (aux != NULL)){

       comp = strncmp(aux->nom, tmp->nom,3);

       if (comp <= 0){

  aux = aux->liga;

  auxap = auxap->liga;

       }    }

    tmp->liga = aux;

    auxap->liga = tmp;  }      }  }

 void ver(){

   Nodo *aux;

   aux = ptr->liga;

   printf("Lista de Nombres \n");

   while (aux != NULL){

     printf("%s\n",aux->nom);

     aux = aux->liga;

   }

   getch();

   free(aux);

 }

Este es el codigo de

un pequeño programa que trabaja con Listas, en

Lenguaje C.

 

 

Pilas:

Las Pilas son otro tipo de estructura de datos lineales, las cuales presentan restricciones en cuanto a la posición en la cual pueden realizarse las inserciones y las extracciones de elementos.

Las pilas no son estructuras de datos fundamentales, es decir, no están definidas como tales en los lenguajes de programación. Las pilas pueden representarse mediante el uso de :

  • Arreglos.
  • Listas enlazadas.

Para utilizar los arreglos debemos definir el tamaño máximo de la pila, además de un apuntador al último elemento insertado en la pila el cual se denomina SP.

Las principales operaciones que podemos realizar en una pila son:

  • Insertar un elemento (push).
  • Eliminar un elemento (pop).

 

Creacion de la Pila.

 

Una pila es una lista de elementos en la que se pueden insertar y eliminar elementos sólo por uno de los extremos. En esta imagen se esta insertando el primer elemento.

 

Al Insertar un elemento se le llama Push.

 

De nuevo se va a trabajar con 17 elementos.

 

Eliminacion (Pop):

Los elementos de una pila serán eliminados en orden inverso al que se insertaron. Es decir, el último elemento que se metió a la pila será el primero en salir de ella.

 

Debido al orden en que se insertan y eliminan los elementos en una pila, también se le conoce como estructura LIFO (Last In, First Out: último en entrar, primero en salir).

 

En la vida cotidiana existen muchos ejemplos de pilas, una pila de platos en una alacena, una pila de latas en un supermercado, una pila de papeles sobre un escritorio, etc.

En esta fig. esta saliendo el ultimo elemento en la pila, el cual fue el primero en entrar.

 

Si una pila contiene un solo elemento(como en la figura anterior), y se realiza la opereción de retiro, la pila resultante no contendra elementos y en este caso se denomina "Pila Vacia".

 

Trabaja con 10 elementos

 int arr[10];

 void push(){

 int i;

  for (i=0; i<10;i++){

    scanf("%i",arr[i]);   } }

 void pop(){

 int i;

  for (i=10; i>0;i++){

    printf("%i \n",arr[i]);   } }

Este es el codigo de un

pequeño

programa que trabaja con

Pilas, en Lenguaje C.

 

 

CONCLUSIONES:

Despues de manejar algunos ejemplos de algunas estructuras de datos ,nos damos cuenta de la importancia de estas ene le manejo y recopilación de datos que se manejan en todos los hambitos de la computación .

REFERENCIAS:

http://www1.mmu.edu.my/~mukund/dsal/appldsal.html

 

Estructura de Datos en Pascal

Aaron M. Tenenbaum, Moshe J. Augenstein

Ed. Prentice-Hall Hispanoamericana, Mexico1989, Pag. 560

inicio
1 1
Hosted by www.Geocities.ws