Listas ligadas en c (dev c++)
Nombre de la asignatura: Ingeniería de software. Semestre: 2011-2
Nombre del Alumno: Morales Rodríguez Rubén Oscar. No de cuenta 304026432
No. Tarea 2. Nombre Tarea: Listas Ligadas
Fecha que se pidió 05/24/2011. Fecha de entrega 05/26/2011
Nombre del Profesor: Fis. Raymundo Hugo Rangel Gutiérrez
Motivación del Tema
Las listas ligadas te permiten utilizarla memoria eficientemente y sirven de reemplazo de los arreglos.
Las listas ligadas te permiten utilizar la memoria eficientemente y sirven de reemplazo de los arreglos.
Cuando se desconoce de antemano el número de registros que necesitaras, es decir, si crece el tamaño de la población el uso de listas ligadas permitirá un crecimiento a la par solo limitado por la memoria RAM de lacomputadora.
Cuando se desconoce de antemano el número de registros que necesitaras, es decir, si crece el tamaño de la población el uso de listas ligadas permitirá un crecimiento a la par solo limitado por la memoria RAM de la computadora.
Imaginemos que se tiene una compañía que recoge basura de contenedores en una ciudad. Podrías tener un camión grande que haga toda la recolecta, pero, ¿Quépasaría si al transcurso de los años la población crece y ahora hay más contenedores que recoger y más basura? La solución no está en comprar un camión cada vez más grande, sino en ir comprando camiones cuando se necesiten
Imaginemos que se tiene una compañía que recoge basura de contenedores en una ciudad. Podrías tener un camión grande que haga toda la recolecta, pero, ¿Qué pasaría si al transcursode los años la población crece y ahora hay más contenedores que recoger y más basura? La solución no está en comprar un camión cada vez más grande, sino en ir comprando camiones cuando se necesiten
Enunciado del problema
Construya los algoritmos de:
Agregar un nodo al inicio de la lista
Añadir un nodo al final de la lista.
Suprimir un nodo al inicio de la lista.
Quitar un nodo al final de la lista.
Para LSL, LCL y LDLT.
LSL
#include <stdio.h>
#include <conio.h>
struct EsNodos{
char DatoCa;
EsNodos *SigApEsNodos;
};
EsNodos *CreaListaFnApEsNodos(int NroNodosEn){
EsNodos *pApEsNodos,*qApEsNodos,*sApEsNodos;
sApEsNodos=pApEsNodos=new EsNodos;
puts("\nDame el caracter:");scanf("%c",&(pApEsNodos->DatoCa));
fflush(stdin);
sApEsNodos=pApEsNodos; //Agregado
for(int iEn=1;iEn <= NroNodosEn-1;iEn++){
qApEsNodos=new EsNodos;
puts("Dame siguiente caracter:");
scanf("%c",&(qApEsNodos->DatoCa));
fflush(stdin);
sApEsNodos->SigApEsNodos=qApEsNodos;sApEsNodos=qApEsNodos;
}
return pApEsNodos;
}
void ExhibeFn(EsNodos *tApEsNodos, int NroNodosEn){ //Recibe a pApEsNodos , NroNodosEn
EsNodos *yApEsNodos=new EsNodos;
puts("\nLa lista es:");
yApEsNodos = tApEsNodos;
for(int i=0;i < NroNodosEn-1;i++){
printf("[%c|]->",yApEsNodos->DatoCa);yApEsNodos=yApEsNodos->SigApEsNodos;
}
printf("[%c|C]->null",yApEsNodos->DatoCa);
}
EsNodos *AgregaFnApEsNodos(EsNodos *pApEsNodos, EsNodos *xApEsNodos){ //Agrega Al inicio, recibe (top lista,nodo creado)
xApEsNodos->SigApEsNodos=pApEsNodos->SigApEsNodos;
pApEsNodos->SigApEsNodos=xApEsNodos;
return pApEsNodos;
}
EsNodos *AnadeFnApEsNodos(EsNodos*pApEsNodos,EsNodos *xApEsNodos,int NroNodosEn){ //(top,nodocreado,nronodos)
EsNodos *qApEsNodos=pApEsNodos;
for(int i=0;i < NroNodosEn-1;i++)
qApEsNodos=qApEsNodos->SigApEsNodos;
qApEsNodos->SigApEsNodos=xApEsNodos;
return pApEsNodos;
}
EsNodos *SuprimeFnApEsNodos(EsNodos *pApEsNodos){ //Suprime inicio
EsNodos...
Regístrate para leer el documento completo.