Вы находитесь на странице: 1из 8

COLABORATIVO 2

ESTRUCTURA DE DATOS

ADRIAN CHAUSTRE

CODIGO: 88225945

GRUPO: 301305_33

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


INGENIERIA INDUSTRIAL
BARRANCABERMEJA

2012
INTRODUCCION

El presente trabajo aborda la temática de las estructuras lineales a saber pilas,


colas y listas.

Las estructuras lineales de datos se caracterizan porque sus elementos están en


secuencia, relacionados en forma lineal, uno luego del otro. Cada elemento de la
estructura puede estar conformado por uno o varios subelementos o campos que
pueden pertenecer a cualquier tipo de dato, pero que normalmente son tipos
básicos.

Entre las múltiples aplicaciones que tienen estas estructuras podemos mencionar:

* El desarrollo de compiladores de lenguajes de programación que están


conformados por varios subprogramas con finalidades más específicas, como por
ejemplo: el analizador de léxico que genera la tabla de símbolos.

* La simulación discreta de sistemas a través del computador, donde la mayoría


de los paquetes de simulación digital ofrecen lenguajes de simulación que
soportan las primitivas para el manejo de colas y sus diferentes versiones.

* La realización de sistemas operativos para los computadores, los cuales hacen


un uso intensivo de las estructuras lineales, ya que internamente se soportan en
los sistemas operativos, las colas de ejecución para los dispositivos, las pilas de
llamadas a los subprogramas de cualquier programa, las listas de usuarios en los
sistemas operativos multiusuarios, etc.

Proporcionan mucha utilidad al programador ya que permiten accesar y manipular


datos de tal manera que no es posible realizarse en otros lenguajes llamados de
alto nivel.
OBJETIVOS

* Desarrollar programas que permitan fortalecer las buenas practicas de


programación dando aplicabilidad a las estructuras lineales a través del desarrollo
de supuestos semánticos en entornos reales.

* Dar aplicabilidad al uso y manejo de las variables apuntadores, funciones y


operadores de C++ en el manejo de la memoria de forma dinámica, así integrar
estos conceptos con las operaciones que se pueden realizar con las estructuras
de datos lineales.

* Evidenciar las competencias en programación del estudiante de la aplicabilidad


de las estructuras de datos lineales.
DESARROLLO DEL TRABAJO

La Planta Terpel la Fortuna necesita un programa que le dé la lista de los cargues


diario, hechos en la planta todo ello hecho con apuntadores. El programa contiene
su respectiva programación. Ejemplo de pila.

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <alloc.h>
#include <iostream.h>
#define localizar (struct pila *)malloc(sizeof(struct pila))
/*Definimos la variable localizar para abrir espacio en memoria*/

struct pila
{
char nombre[100],cedula[100],cantidad del cargue[100];/*Variables donde
recogemos los datos*/
struct pila *ant;/*Puntero al elemento anterior*/
}*aux=NULL,*cab=NULL;/*Punteros para movernos por la pila*/

/*Prototipo de las funciones*/


void apilar(void);
void desapilar(void);
void visualizar(void);
void autor(void);

void main()
{
char opc;
do
{
textbackground(BLUE);/*Función que selecciona el color de fondo*/
clrscr( );/*Limpia la pantalla*/
cout<<"\n""******************** PLANTA LA FORTUNA ****************************";
cout<<"\n""\n""------------------ MENU PRINCIPAL -------------------------";
cout<<"\n""1.- Insertar Datos del conductor";
cout<<"\n""2.- Extraiga Datos del conductor";
cout<<"\n""3.- Visualizar la lista de Conductores";
cout<<"\n""4.- Sobre el autor del programa";
cout<<"\n""5.- Salir";
cout<<"\n""----------------------------------------------------------";
cout<<"\n""\n""Digite su opcion: ";
cin>>opc;

switch(opc)
{
case '1':
apilar( );
break;

case '2':
desapilar( );
break;

case '3':
visualizar( );
break;

case '4':
autor();
break;
}

}
while (opc!='5');
}

void apilar(void)/*Funcion que apila los datos*/


{
aux=localizar;
textbackground(GREEN);
clrscr( );
cout<<"\n""******************** PLANTA LA FORTUNA ****************************";
cout<<"\n""\n""---------------- DATOS DEL CONDUCTOR --------------------";
cout<<"\n""\n""Digite el nombre del conductor: ";
cin>>aux->nombre;
cout<<"\n""Digite el numero de cedula: ";
cin>>aux->cedula;
cout<<"\n""Digite la cantidad: Galones";
cin>>aux->cantidad del cargue;
if(cab==NULL)
{
cab=aux;
aux->ant=NULL;
}
else
{
aux->ant=cab;
cab=aux;
}
}

void desapilar(void)/*Funcion que desapila los datos*/


{
if (cab==NULL) return;
aux=cab;
cab=cab->ant;
free(aux);

if (cab==NULL)
{
cout<<"\n""\n""La pila esta vacia.";
getch();
}
else
{
cout<<"\n""\n""La pila aun tiene datos.";
getch();
}
}

void visualizar(void)/*Funcion que visualiza los datos*/


{
textbackground(RED);
clrscr( );
if (cab==NULL) return;
int i=0;
aux=cab;
cout<<"\n""******************** PLANTA LA FORTUNA ****************************";
cout<<"\n""\n""---------------- LISTA DE CONDUCTORES -----------------------";
cout<<"\n""\n""Nombre del conductor Numero de cedula Cantidad del cargue";
while (aux!=NULL)
{
gotoxy(1,8+i);cout<<aux->nombre;
gotoxy(24,8+i);cout<<aux->cedula;
gotoxy(44,8+i);cout<<"$"<<aux->cargue;
aux=aux->ant;
i++;
}
getch();
}

void autor(void)/*Funcion que visualiza los datos del programador*/


{
textbackground(BROWN);
clrscr( );
cout<<"\n""******************** PLANTA LA FORTUNA ****************************";
cout<<"\n""----------------- SOBRE EL AULUMNO -----------------------";
cout<<"\n""\n""Project R4";
cout<<"\n""Universidad Nacional Abierta y a Distancia UNAD";
cout<<"\n""Ingenieria Industrial";
cout<<"\n""Estructura de Datos";
cout<<"\n""2012";
getch();
}
BIBLIOGRAFIA

* Modulo de Estructura de Datos. UNAD 2011

* Aula virtual: Curso 301305 Estructura de Datos. UNAD 2011

Вам также может понравиться