definicion de lenguaje c

Páginas: 6 (1350 palabras) Publicado: 4 de marzo de 2014
 Definición
La pila es una estructura de datos que permite almacenar datos en el orden LIFO (Last In First Out) en español, último en entrar, primero en salir). 
La recuperación de los datos es hecha en el orden inverso de su inserción. 

Para la implementación he elegido una lista enlazada simple, presentada sobre la vertical. 
Ya que la inserción es siempre hecha al inicio de la lista, el1er elemento de la lista será el ultimo elemento ingresado, por lo tanto estará en la cabeza de la pila. 
No he utilizado un puntero fin, como lo hice en el caso de la lista enlazada simple, ya que el objetivo no es el de tratar una lista enlazada, sino una pila. 
Lo interesante es que el ultimo elemento ingresado, será el 1er elemento recuperado. 





III. La construcción del modelo deun elemento de la pila
Para definir un elemento de la pila será utilizado el tipo struct. 
El elemento de la pila contendrá un campo dato y un puntero siguiente. 
El puntero siguiente debe ser del mismo tipo que el elemento, de lo contrario no podrá apuntar hacia el elemento. 
El puntero siguiente permitirá el acceso al próximo elemento. 


typedef struct ElementoLista {
char *dato;struct ElementoLista *siguiente;
}Elemento;


Para permitir las operaciones sobre la pila, vamos a guardar ciertos elementos:
el primer elemento
el numero de elementos


El 1er elemento, que se encuentra en la cabeza de la pila, nos permitirá realizar la operación de recuperación de los datos situados en la parte superior de la pila. 

Para ello, será utilizada otra estructura (no esobligatorio, pueden ser utilizadas variables). 


typedef struct ListaUbicación{
Elemento *inicio;
int tamaño;
} Pila;


El puntero inicio contendrá la dirección del 1er elemento de la lista. 
La variable tamaño contiene el numero de elementos. 

Nota: 
Esta vez no utilizamos un puntero fin (ver la lista enlazada simple), no lo necesitamos puesto que únicamente trabajamos alinicio de la lista. 

Cualquiera que sea la posición en la lista, el puntero inicio apunta siempre hacia el 1er elemento, que estará en la cabeza de la pila. 
El campo tamaño contendrá el numero de elementos de la pila, cualquiera que sea la operación efectuada sobre la pila. 

IV. Operaciones sobre las pilas
A. Inicialización
Modelo de la función: 


void inicialización (Pila *tas);Esta operación debe ser hecha antes de cualquier otra operación sobre la pila. 
Esta inicializa el puntero inicio con el puntero NULL, y el tamaño con el valor 0. 

La función 


void inicialización (Pila * tas){
tas->inicio = NULL;
tas->tamaño = 0;
}


B. Inserción de un elemento en la pila
A continuación el algoritmo de inserción y registro de los elementos:
declaración delelemento a insertar
asignación de la memoria para el nuevo elemento
rellenar el contenido del campo de datos
actualizar el puntero inicio hacia el 1er elemento (la cabeza de la pila)
Actualizar el tamaño de la pila.


Modelo de la función: 


int apilar (Pila *tas, char *dato);


La primera imagen muestra el inicio de la inserción, por lo tanto la lista de tamaño 1 después de la inserción.La característica de la pila no es muy apreciada con un solo elemento, ya que es el único a recuperar. 





En cambio la 2da imagen nos permite observar el comportamiento de la pila. 
Lo que debemos retener es que la inserción siempre se hace en la parte superior de la pila (al inicio de la lista). 





La función 


/* apilar (añadir) un elemento en la pila */
int apilar (Pila* tas, char *dato){
Elemento *nuevo_elemento;
if ((nuevo_elemento = (Elemento *) malloc (sizeof (Elemento))) == NULL)
return -1;
if ((nuevo_elemento->dato = (char *) malloc (50 * sizeof (char)))
== NULL)
return -1;
strcpy (nuevo_elemento->dato, dato);
nuevo_elemento->siguiente = tas->inicio;
tas->inicio = nuevo_elemento;
tas->tamaño++;
}


C. Eliminar...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • DEFINICION DEL LENGUAJE C
  • Definicion de un lenguaje c#
  • lenguaje c
  • Lenguaje C#
  • LENGUAJE C
  • Lenguaje c
  • Lenguaje C
  • Lenguaje c

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS