| Anterior | Home | Siguiente |
Lista enlazada es un conjunto de elementos en los que cada uno contiene la dirección del siguiente.
cada nodo se va a llamar con la dirección de su puntero
struct nodo
{
tipo elemento;
struct nodo *sgte;
}
typedef struct ficha
{
char Nombre[20];
char Apellido[20];
int Edad;
struct ficha *sgte;
} Alumno;
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;
}
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;
}
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 */
}
}
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