Listas ligadas en c (dev c++)

Solo disponible en BuenasTareas
  • Páginas : 7 (1503 palabras )
  • Descarga(s) : 0
  • Publicado : 9 de junio de 2011
Leer documento completo
Vista previa del texto
Facultad de Ingeniería

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...
tracking img