Your SlideShare is downloading. ×
Trabajo colaborativo2
Trabajo colaborativo2
Trabajo colaborativo2
Trabajo colaborativo2
Trabajo colaborativo2
Trabajo colaborativo2
Trabajo colaborativo2
Trabajo colaborativo2
Trabajo colaborativo2
Trabajo colaborativo2
Trabajo colaborativo2
Trabajo colaborativo2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Trabajo colaborativo2

1,161

Published on

trabajo colaborativo 2 estructura de datos

trabajo colaborativo 2 estructura de datos

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,161
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
63
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. INTRODUCCIONEn este trabajo vamos a utilizar tres tipos de estructuras lineales el tipo cola: Una cola es unaestructura de datos, caracterizada por ser una secuencia de elementos en la que laoperación de inserción push se realiza por un extremo y la operación de extracción pop por elotro. También se le llama estructura FIFO (del inglés First In FirstOut), debido a que el primerelemento en entrar será también el primero en salir.Las colas se utilizan en sistemas informáticos, transportes y operaciones de investigación(entre otros), dónde los objetos, personas o eventos son tomados como datos que sealmacenan y se guardan mediante colas para su posterior procesamiento. Este tipo deestructura de datos abstracta se implementa en lenguajes orientados a objetos medianteclases, en forma de listas enlazadas.Y la estructura de de listas enlazadas o doblemente enlazadas son: una lista enlazada esuna de las estructuras de datos fundamentales, y puede ser usada para implementar otrasestructuras de datos. Consiste en una secuencia de nodos, en los que se guardan camposde datos arbitrarios y una o dos referencias (punteros) al nodo anterior y/o posterior.
  • 2. OBJETIVOS Fundamentar la aplicación de las estructuras lineales pilas, colas, en situaciones reales haciendo uso de la representación de las listas por medio de apuntadores. Fundamentar la aplicación de las estructuras lineales: listas enlazadas y listas doblemente enlazadas, en situaciones reales haciendo uso de la representación de las listas por medio de apuntadores.
  • 3. Actividad a realizar1. Para lo cual es necesario iniciar con el desarrollo del planteamiento del problema o supuesto semántico que de aplicabilidad a una situación real del entorno y que pueda ser solucionado a través de una Lista enlazada, para ello se debe tener claro la conceptualización de las listas enlazadas; posteriormente realizar un listado de requerimientos, a lo que se conoce como captura de requerimientos para el desarrollo de software (se recomienda hacer una consulta del tema); Posteriormente se debe realizar un listado de recursos a utilizar tales como (Variables, constantes, funciones u operadores para la gestión de memoria, apuntadores, funciones para ser manejadas con las opciones del menú, entre otros).Supuesto semántico:La biblioteca de la UNAD desea llevar el registro de los estudiantes que la ingresan y queadquieren el prestamos de un libro, de los estudiantes se desea saber (Nombre, Apellido,COD, Carrera, Semestre, Hora del préstamo), cuando piden el préstamo se debe anotar del(Nombre, Temática, ID), cuando el estudiante entrega el libro se debe eliminar de la lista, sialguien desea saber si ese libro esta disponible la lista debe tener la posibilidad de saber si ellibro esta prestado.2. El programa a implementar deberá cumplir con los siguientes requerimientos:  Una opción de una Portada: que incluya datos básicos como:(Nombre de la Universidad, el texto del supuesto semántico es decir lo que hace el programa, el nombre de los integrantes del grupo (solo incluir a quienes realmente aportaron al desarrollo del trabajo), nombre del grupo colaborativo, nombre del tutor y la fecha).  Una opción para Insertar registros a la Lista (La inserción de elementos debe permitir insertar al inicio, en el intermedio de la lista o al final de la lista)  Una opción para Visualizar los registros de la lista  Una opción para Eliminar o suprimir registros de la lista  Una opción para Buscar un dato en la lista  Una opción para Salir del programa #include <stdio.h>
  • 4. #include <conio.h>#include <stdlib.h>structbiblio{ char libro[15]; charcod[10]; char nombre[30]; char apellido[20];char cc[20];chartel[12];charcarr[30];charsemes[15];charhrpre[20];char tema[30]; structbiblio *sig;structbiblio *ant;}*cab=NULL, *fin=NULL, *p=NULL;voidmenu();void portada();void insertar();void eliminar();void visualizar();voidlibros();voidbuscar();void main(){ clrscr();menu();}voidmenu(){ clrscr(); printf("tGESTROR DE PRESTAMOS DE LIBROS DE LA BIBLIOTECAUNADnnn"); intop=0; do{ clrscr(); printf("------MENU DE OCIONES------nn"); printf("1- PORTADA"); printf("n2- INSERTAR USUARIO"); printf("n3- VISUALIZAR USUARIOS"); printf("n4- ELIMINAR DEL REGISTRO A UN USUARIO"); printf("n5- BUSCAR DISPONIOBILIDAD DEL LIBRO"); printf("n6- SALIR DEL GESTOR");
  • 5. printf("nnnINGRESE LA ACCION QUE DESEA HACER: "); scanf("%d",&op); switch(op){ case 1: portada(); break; case 2: insertar(); getch(); break; case 3: visualizar(); getch(); break; case 4: eliminar(); getch(); break; case 5: buscar(); getch(); break; } }while(op!=6);clrscr(); printf("GRACIAS POR USAR LA APLICACION"); getch();}void portada(){ clrscr(); printf("tt------------PORTADA------------nn"); printf("tttTRABAJO COLABORATIVO 1nn"); printf("tttPRENSENTADO POR:ntttJHON SEBASTIAN SEPULVEDANOMESQUEn"); printf("tttRUBY ALEJANDRA SUAREZntttMANUEL ALBERTOCIFUENTESnn");printf("tttSUPUESTO SEMANTICOnn"); printf("La biblioteca de la UNAD desea llevar el registro de los estudiantesn"); printf("que la ingresan y que adquieren el prestamos de un libro,de los n"); printf("estudiantes se desea saber (Nombre, Apellido, COD, Carrera,Semestre,n"); printf("Hora del préstamo),cuando piden el préstamo se debe anotar dellibron"); printf("(Nombre, Temática, ID), cuando el estudiante entrega el libro se debe n"); printf("eliminar de la lista,si alguien desea saber si ese libro esta disponible n"); printf("la lista debe tener la posibilidad de saber si el libro esta prestado."); getch();}voidinsertar(){
  • 6. clrscr(); p=(structbiblio *)malloc(sizeof(structbiblio)); //reservamosmemoria if(p==NULL) printf("UPS!!! NO HAY MEMORIA SUFICIENTE"); printf("Nombre del Estudiante: "); scanf("%s",p->nombre); printf("Apellidos del estudiante: "); scanf("%s",p->apellido); printf("Carrera: "); scanf("%s",p->carr); printf("Numero de cedula: "); scanf("%s",p->cc); printf("Semestre Cursado: "); scanf("%s",p->semes); printf("Mire la siguiente lista y anote el nombre segun aparece en ella con suReferencia"); printf("Nombre del libro: "); scanf("%s",p->libro); printf("Numero de Referencia del Libro: "); scanf("%s",p->cod); printf("Hora de prestamo: "); scanf("%s",p->hrpre); p->sig=NULL; //el campo siguiente va a ser null por ser el ultimo elemento if(cab==NULL){ cab=p;fin=p; }else{ fin->sig=p;fin=p; }}void visualizar(){}void eliminar(){}void buscar(){}void libros(){ clrscr(); printf("tNOMBRE DEL LIBRO------REFERENCIAnnn"); printf("tPROGRAMACION ESTRUCTURADA------104.9n"); printf("tBIOLOGIA BASICA 1------189.8n"); printf("tELECTRONICA Y TECNOLOGIA------123.7n"); printf("tINFORMATICA BASICA------234.6n"); printf("tARQUITECTURA DE COMPUTADORES 1------345.5n"); printf("tALGEBRA LINEAL------143.4n"); printf("tALGEBRA DE BALDOR------453.6n");}
  • 7. 3.Aporte Individual Como aporte individual dentro del trabajo, cada integrante del grupoademás de lo anterior se va encargar de la documentación o explicación de cada linea decódigo de una de estas anteriores funciónes, es decir que el grupo se repartan la explicaciónde las funciones (visualizar, insertar, eliminar, buscar y la función main()) y esta explicaciónse debe anexar en el documento de Word como se explica más adelante.Listas EnlazadasRecorridoDefinición:Recorrido simplemente despliega los datos almacenados en el arreglo Info, con ayuda de unsegundo arreglo llamado Indice el cual guarda el orden en el que encuentran enlazados cadauno de los datos.Explicación:Apuntador toma el valor de Inicio, después ve si la condición cumple para efectuar un Ciclomientras Apuntador sea diferente de 0, si cumple lo que hace es que despliega laInfo[Apuntador], después Apuntador toma el valor de Indice[Apuntador] (El cual nos indica elsiguiente nodo que sigue en la lista) y hace esto hasta que Apuntador sea igual a 0 (Cuandollega a este punto a llegado al fin de la Lista Enlazada).Las operaciones que podemos realizar sobre una lista enlazada son las siguientes: Recorrido. Esta operación consiste en visitar cada uno de los nodos que forman la lista . Para recorrer todos los nodos de la lista, se comienza con el primero, se toma el valor del campo liga para avanzar al segundo nodo, el campo liga de este nodo nos dará la dirección del tercer nodo, y así sucesivamente. Algoritmo:
  • 8. Recorrido(Inicio, Info, Indice) Apuntador ←- Inicio Repetir mientras Apuntador ≠ Nill Imprimir Info[Apuntador] Apuntador ←- Indice[Apuntador] Fin del ciclo Salir Inserción. Esta operación 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.Algoritmo: InsPr(Inicio, Disp, Info, Indice, Elemento) Si Disp ≠ Nill entonces: Apuntador ←- Disp Disp ←- Indice[Disp] Info[Apuntador] ←- Elemento Indice[Apuntador] ←- Inicio Inicio ←- Apuntador Si no: Imprimir “SobreCarga” Salir 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.
  • 9.  Eliminar el último nodo.  Eliminar un nodo con cierta información.  Eliminar el nodo anterior o posterior al nodo cierta con información.Algoritmo:EliBusq(Inicio, Info, Indice, Elemento)Temp ←- InicioSi Temp = NillImprimir “Lista Vacia… Imposible Eliminar” y RetornarRepetir mientras Temp ≠ NillSi Elemento = Info[Temp] entonces:Si Temp = Inicio entonces:Inicio ←- Indice[Inicio]Si no:Indice[Temp2] ←- Indice[Temp]Indice[Temp] ß DispDisp ←- TempRecorrido(Inicio, Info, Indice) y RetornarSi no:Temp2 ←- TempTemp ←- Indice[Temp]Imprimir “Dato no encontrado… Imposible Eliminar” y Retornar
  • 10. Búsqueda. Esta operación consiste en visitar cada uno de los nodos, tomando al campo liga como puntero al siguiente nodo a visitarAlgoritmo:Recorrido(Inicio, Info, Indice, Elemento)Apuntador ←- InicioRepetir mientras Apuntador ≠ NillSi Elemento = Info[Apuntador] entonces:Imprimir Info[Apuntador]Regresa ApuntadorApuntador ←- Indice[Apuntador]Fin del cicloRegresar Apuntador
  • 11. ANEXOS

×