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