Programa de listas ligadas en c

Páginas: 2 (325 palabras) Publicado: 31 de mayo de 2011
/*
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(){...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Listas ligadas en c (dev c++)
  • Definición de un programa de listas en c
  • Lista Ligada
  • Programa lista simple c++
  • Listas c++
  • Listas en c#
  • Listas en c
  • Listas c++

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS