Programa de listas ligadas en c
Programa ejemplo de listas ligadas
Programaci?n I
*/
#include
#include
typedef struct nodo_{
int dato;
struct nodo_ *sgte;
} Nodo;
//declarar como globales
Nodo*inicio;
Nodo *fin;
Nodo *creaNodo(int valor)
{
Nodo *nv =(Nodo *) malloc(sizeof(Nodo)); //solicita memoria
nv->dato = valor; //coloca el valor deseado en el campo dato
nv->sgte= NULL; //inicialmente siempre ponemos el apuntador a NULL
return nv; //regresa la direcci?n de memoria donde est? el nodo
}
int estaVacia(){
if(inicio == NULL && fin == NULL)return 1;
return 0;
}
void insertarInicio (int dato)
{
Nodo *nv = creaNodo(dato);
//si la lista es vacia
if(estaVacia())
{
inicio = nv;fin = nv;
}
else //lista con al meno un dato
{
nv->sgte = inicio;
inicio = nv;
}
}
void insertarFinal (int dato)
{
Nodo *nv =creaNodo(dato);
//si la lista es vacia
if(estaVacia())
{
inicio = nv;
fin = nv;
}
else //lista con al menos un dato
{fin->sgte = nv;
fin = nv;
}
}
void insertardespues(int dato,int x)
{
Nodo *nv = creaNodo(dato);
//si la lista es vacia
if(estaVacia()){
inicio = nv;
fin = nv;
}
else //lista con al menos un dato
{
Nodo*aux=inicio;
while(aux!=NULL && aux->dato!=elemento)
{
aux=aux->sgte
}if(aux!=NULL)
{
nv->sgte =aux->sgte;
aux->sgte=nv;
}
}
}
//recorrer los elementos de la lista y mostrarlos
void mostrar()
{
Nodo *aux = inicio;printf("Los elementos de la lista son: \n");
while(aux != NULL)
{
printf(" %d ", aux->dato);
aux = aux -> sgte;
}
printf("\n");
}
int main(){...
Regístrate para leer el documento completo.