Manual Deltecnico Listas Enlazadas 2

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Manual Deltecnico Listas Enlazadas 2 as PDF for free.

More details

  • Words: 974
  • Pages: 16
INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICAY ELECTRICA UNIDAD ZACATENCO

ASIGNATURA: ESTRUCTURAS Y BASES DE DATOS PROFESORA: CORTES HERNANDEZ LILIA ALUMNOS: JUAREZ PEREZ MIGUEL RAMIREZ TAFOLLA JOSUE GRUPO: 3CV4

“MANUAL DE TECNICO”

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICAY ELECTRICA UNIDAD ZACATENCO

INTRODUCCION AL PROGRAMA Este programa realiza la pequeña función de explicar lo que es una lista enlazada primero empezamos con la declaración de de funciones para inicializar el programa con void margen, portada, descripciones y tema. Posteriormente el programa de ejemplo que en este caso realiza la función de Guardar un dato entero, Borrarlo, Modificarlo y Buscarlo la funciones para las listas enlazadas como malloc(sizeof(struct dato)); y while(indice!=NULL); como lo muetra el algoritmo de listas enlazadas: Algoritmo: Recorrido (Inicio, Info, Indice) Apuntador ←- Inicio Repetir mientras Apuntador ≠ Nill Imprimir Info[Apuntador] Apuntador ←- Indice[Apuntador] Fin del ciclo Salir Diagrama:

2

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICAY ELECTRICA UNIDAD ZACATENCO

#include<stdio.h> #include #include #include<stdlib.h> #include #include<dos.h> #include

void margen(); void portada(); void descripcion(); void tema();

struct dato { int x; struct dato *sig;

3

}; struct dato *primero=NULL,*nuevo=NULL,*indice=NULL; struct dato *asigna_memoria(void) { nuevo=(struct dato *)malloc(sizeof(struct dato)); if(nuevo==NULL) { cout<<"no hay espacio en Memoria"; return(nuevo); } if(primero==NULL) primero=indice=nuevo; else {

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICAY ELECTRICA UNIDAD ZACATENCO indice=primero; while(indice->sig!=NULL) indice=indice->sig; indice->sig=nuevo;

indice=nuevo; } return(nuevo); } void intro_dato(void) { if(asigna_memoria()==NULL)return; clrscr();

4

cout<<"Dame el dato (entero):"; cin>>indice->x; indice->sig=NULL; } void lista_datos(void) { if(primero==NULL) { cout<<"LISTA VACIA";return;} indice=primero; do{ cout<<"\n\nDATO:"<x; indice=indice->sig; }while(indice!=NULL); getch();clrscr(); }

struct dato *busca_dato(void) { int xdato; //clrscr(); cout<<"Busqueda de un dato"<<endl<<endl; cout<<"Dato a buscar: "; cin>>xdato; if(primero==NULL) { cout<<endl<<endl<<"\tLISTA VACIA!!!"; getch();return(NULL);} indice=primero; do{

4

5

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICAY ELECTRICA UNIDAD ZACATENCO

if(xdato==indice->x) {cout<<endl<<endl<<"El dato "<x<<" se encuentra en la lista"; return(indice); getch();clrscr(); } indice=indice->sig; }while(indice!=NULL); cout<<endl<<"No se encontro el dato "<<xdato<<" en lista"; return(NULL); } void borra(void) { struct dato *y; cout<<endl<<"Borrado de un dato"; cout<<endl<<endl<<"Primero se verifica que se encuentre el dato"; y=busca_dato(); if(y==NULL)return; cout<<endl<<"\tDato a borrar:"<x; indice=y; if(y==primero) { primero=primero->sig; y->sig=NULL;

6

free(y); cout<<endl<<endl<<"\tEL DATO HA SIDO BORRADO DE LA LISTA"; getch();return;} indice=primero; while(indice->sig!=y)indice=indice->sig; indice->sig=y->sig;free(y); cout<<endl<<endl<<"\tSe borro el Dato";getch();clrscr();}

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICAY ELECTRICA UNIDAD ZACATENCO

void modificar_lista(void) { struct dato *z;

cout<<endl<<"\n\n\tModificaci¢n de un dato"; cout<<endl<<endl<<"Primero se verifica que se encuentre el dato"; cout<<endl<<endl;

7

z=busca_dato(); if(z==NULL)return; cout<<endl<<endl<<"Dato a modificar:"<x; indice=z; if(z==primero) { cout<<endl<<endl<<"\tIntroduce el nuevo dato:";cin>>indice->x; cout<<endl<<endl<<"\tEL DATO HA SIDO MODIFICADO DE LA LISTA"; getch();return;} indice=primero; while(indice->sig!=z)indice=indice->sig; indice=z; cout<<endl<<endl<<"\tIntroduce el nuevo dato:";cin>>indice->x; cout<<endl<<endl<<"EL DATO HA SIDO MODIFICADO DE LA LISTA "; getch();clrscr();}

void main(void) { char opcion; clrscr(); margen();portada();getchar(); clrscr();margen();descripcion();tema();getchar(); clrscr(); for(;;) { cout<<endl<<"\n\n@@@@Lista simplemente enlazada de enteros@@@"<<endl; cout<<endl<<endl<<"a.-INTRODUCIR UN DATO EN LA LISTA"<<endl; cout<<endl<<"b.-LISTAR LA LISTA"<<endl;

8

cout<<endl<<"c.-BUSCAR UN DATO"<<endl; cout<<endl<<"d.-BORRAR UN DATO"<<endl; cout<<endl<<"e.-MODIFICAR"<<endl; cout<<endl<<"f.-SALIR"<<endl;

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICAY ELECTRICA UNIDAD ZACATENCO

cout<<endl<<"\tOPCION:"; cin>>opcion; switch(opcion) { case 'a' : intro_dato(); clrscr();break; case 'b' : lista_datos();break; case 'c' : busca_dato();getch();clrscr();break; case 'd' : borra();getch();clrscr();break; case 'e': modificar_lista();clrscr();break; case 'f' : cout<<endl<<"FIN";getch();exit(0); default:cout<<endl<<endl<<"Opci¢n incorrecta"<<endl<<endl<<"Presione cualquier tecla para volver la men£"; clrscr(); getchar(); } } }

void portada() {

9

gotoxy(23,7); textcolor(30); cprintf("INSTITUTO POLITECNICO NACIONAL"); gotoxy(15,12); textcolor(26); cprintf("ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA"); gotoxy(30,14); textcolor(28); cprintf("(UNIDAD ZACATENCO)"); gotoxy(20,18); textcolor(3); cprintf("MATERIA:"); gotoxy(29,20); textcolor(75); cprintf("ESTRUCTURAS Y BASES DE DATOS"); gotoxy(20,25); textcolor(89);

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICAY ELECTRICA UNIDAD ZACATENCO

cprintf("NOMBRE:RAMIREZ TAFOLLA JOSUE"); gotoxy(28,27); cprintf("JUAREZ PEREZ MIGUEL"); gotoxy(20,30); textcolor(26); cprintf("PROFESOR:LILIA CORTEZ HERNANDEZ");

10

gotoxy(20,35); textcolor(299); cprintf("PROYECTO SOBRE.-LISTA SIMPLEMENTE ENLAZADA"); gotoxy(20,40); textcolor(WHITE); cprintf("GRUPO:3CV4"); gotoxy(20,45); cprintf("

Presione......ENTER");

}

void margen() { int f=36,p=36; for(int g=5;g<=78;g++) { gotoxy(g,5); textcolor(p); cprintf(""); gotoxy(g,48); textcolor(p); cprintf(""); delay(10); }

11

for(int z=5;z<=48;z++) { gotoxy(4,z); textcolor(f);

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICAY ELECTRICA UNIDAD ZACATENCO cprintf(""); gotoxy(79,z); textcolor(f); cprintf(""); delay(10); } }

void descripcion() { gotoxy(11,7); textcolor(26); cprintf("

DESCRIPCION:PROYECTO ");

gotoxy(9,10); textcolor(30);

cprintf("MANEJO DE UNA LISTA SIMPLEMENTE ELAZADA DE \"n\" ENTEROS\n");

gotoxy(9,12); textcolor(26);

12

cprintf("EXPLICAREMOS LO QUE ES UNA LISTA ENLASADA Y LO DEMOSTRAMOS CON UN"); gotoxy(9,12); textcolor(14); cprintf("\nEJEMPLO QUE CONTIENE UN MENU EN DONDE CADA OPCION ES UNA OPERACION "); gotoxy(9,13); textcolor(26); cprintf("\n

DE LISTAS ENLSADAS\n");

gotoxy(9,18); textcolor(WHITE); cprintf("\nLAS LISTA SiMPLEMENTE ENLAZADA \n");

}

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICAY ELECTRICA UNIDAD ZACATENCO

void tema() {

13

gotoxy(6,19); cprintf("\nUna lista enlazada es una de las estructuras de datos fundamentales,"); gotoxy(6,20); cprintf("\ny puede ser usada para implementar otras estructuras de datos."); gotoxy(6,21); cprintf("\nConsiste en una secuencia de nodos, en los que se guardan campos"); gotoxy(6,22); cprintf("\n de datos arbitrarios y una o dos referencias (punteros) al nodo"); gotoxy(6,23); cprintf("anterior y/o posterior. El principal beneficio de las listas enlazadas"); gotoxy(6,24); cprintf("respecto a los array convencionales es que el orden de los elementos"); gotoxy(6,25); cprintf("enlazados puede ser diferente al orden de almacenamiento en la memoria,"); gotoxy(6,26); cprintf("o el disco, permitiendo que el orden de recorrido de la lista sea"); gotoxy(6,27); cprintf("diferente al de almacenamiento."); gotoxy(6,28); cprintf("\nListas simples enlazadas"); gotoxy(6,29); cprintf("La lista enlazada básica es la lista enlazada simple la cual tiene un"); gotoxy(6,30);

14

cprintf("enlace por nodo. Este enlace apunta al siguiente nodo en la lista, o al"); gotoxy(6,31); cprintf("valor NULL o a la lista vacía, si es el último nodo.\n"); gotoxy(6,32); cprintf("Una lista enlazada simple contiene dos valores:el valor actual del nodo"); gotoxy(6,33); cprintf("y un enlace al siguiente nodo.\n"); gotoxy(6,34); cprintf("Una lista enlazada es un tipo de dato auto-referenciado porque contienen"); gotoxy(6,35); cprintf("un puntero o link a otro dato del mismo tipo. Las listas enlazadas")

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICAY ELECTRICA UNIDAD ZACATENCO

gotoxy(6,36); cprintf("permiten inserciones y eliminación de nodos en cualquier punto de la "); gotoxy(6,37); cprintf("lista en tiempo constante (suponiendo que dicho punto está previamente"); gotoxy(6,38); cprintf("identificado o localizado), pero no permiten un acceso aleatorio. Existen"); gotoxy(6,39); cprintf("diferentes tipos de listas enlazadas: Lista Enlazadas Simples, Listas"); gotoxy(6,40);

15

cprintf("Doblemente Enlazadas, Listas Enlazadas Circulares y Listas Enlazadas"); gotoxy(6,41); cprintf("Doblemente Circulares.n"); gotoxy(6,47); cprintf("Presione ENTER para ver el ejemplo:\n"); }

16

Related Documents