Anterior Home Siguiente

Listas Lineales Simples

Lista enlazada es un conjunto de elementos en los que cada uno contiene la dirección del siguiente.

Operaciones Básicas

cada nodo se va a llamar con la dirección de su puntero

1.- Declarar nodo

struct nodo
{
	tipo elemento;
	struct nodo *sgte;
}

Ejemplo:

typedef struct ficha
{
	char Nombre[20];
	char Apellido[20];
	int Edad;
	struct ficha *sgte;
} Alumno;

2.- Creación de una Lista

Alumno *Crear_Lista()
{
	Alumno *L;
	/* reserva en la memoria espacio
	para una estructura tipo alumno */
	L=(Alumno *)malloc(sizeof(Alumno));
	L->sgte=NULL;
	return L;
}

3.- Insertar un nodo

void Insertar_Nodo(char Nom[20], char Ape[20], int Eda, int Pos, Alumno *L)
{
	int i;
	Alumno *P,*Q,*AUX;
	P=L;

	/* Ubica la posici¢n en la que se quiere insertar el nodo */
	for(i=0;isgte;
	  }
    /* reserva en la memoria espacio
	para una estructura tipo alumno */
	Q=(Alumno*)malloc(sizeof(Alumno));
    /* asigna los valores recibidos a
	las variables a la estructura */
	sprintf(Q->Nombre,"%s",Nom);
	sprintf(Q->Apellido,"%s",Ape);
	Q->Edad=Eda;

	AUX=P->sgte;
	P->sgte=Q;
	Q->sgte=AUX;
}

4.- Eliminar nodo

void Borrar_Nodo(int Pos, Alumno *L)
{
	int i;
	Alumno *P,*AUX;
	P=L;

	if(P->sgte!=NULL&&Pos!=0)
	  {
		/* Se ubica en la posici¢n anterior
		a la que se quiere borrar */
		for(i=0;isgte;
		  }

		AUX=P->sgte;
		P->sgte=P->sgte->sgte;
		freemem(AUX); /* libera la memoria ocupada por el nodo eliminado */
	  }
}

5.- Localizar nodo

struct nodo *Localizar(tipo x, struct nodo *L)
{
	struct nodo *p;
	p=L,
	while(p->sgte!=NULL)
	    {
		if(p->sgte->elem==x)
		    {
			return p;
		    }
		else
		    {
			p=p->sgte;
		    }
	    }
	return NULL;
}

Programa completo: listlisi.zip


Anterior Home Siguiente



© 2000 Made in Bufoland