Programa de listas ligadas en c

Solo disponible en BuenasTareas
  • Páginas : 2 (325 palabras )
  • Descarga(s) : 0
  • Publicado : 31 de mayo de 2011
Leer documento completo
Vista previa del texto
/*
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(){...
tracking img