Listas Enlazadas
C/Visual C
Actualizado el 15 de Octubre del 2020 por Daniel (194 códigos) (Publicado el 13 de Octubre del 2020)
771 visualizaciones desde el 13 de Octubre del 2020
Listas enlazadas
# include <stdio.h>
struct info{
int a;
struct info*sig;
}*cabeza;
struct info *aux;
int menu(){
int opc;
printf("\n\nELIGE UNA OPCION:\n");
printf("(1)Insertar\n");
printf("(2)Insertar desde el fondo\n");
printf("(3)Eliminar\n");
printf("(4)Eliminar dato\n");
printf("(5)Mostrar\n");
printf("(6)Salir\n");
scanf("%d",&opc);
return opc;
}
void insertar(int dato){
aux=(struct info*) malloc (sizeof(aux));
if(aux!=NULL){
aux->a=dato;
if (cabeza==NULL){
cabeza=aux;
aux->sig=cabeza;
}
else{
cabeza=aux;
}
}
else{ printf("Error");}
}
void eliminar(){
if (cabeza==NULL){printf("Lista vacia\n");}
else{
aux=cabeza;
cabeza=cabeza->sig;
printf("El dato eliminado es:%d",aux->a);
free(aux);
}
}
void mostrar(){
aux=cabeza;
printf("Mostrando lista completa....\n");
while(aux!=NULL){
printf("Dato:%d\n",aux->a);
aux=aux->sig;
}
if(cabeza==NULL){
printf("Lista vacia....\n");
}
}
void elidato(int dato){
aux=cabeza;
if (cabeza==NULL){printf("Lista vacia\n");}
else{
if(aux->a==dato){
aux=cabeza;
cabeza=cabeza->sig;
printf("El dato eliminado es:%d",aux->a);
free(aux);
}
}
}
main(){
int opc;
int n;
do{
opc=menu();
getchar();
switch(opc){
case 1:
printf("Dame un numero\n");
scanf("%d",&n);
insertar(n);
break;
case 3: eliminar();
break;
case 4:
printf("Dame un numero a eliminar.....\n");
scanf("%d",&n);
elidato(n);
break;
case 5:mostrar();
break;
}
}
while(opc!=6);
}
Comentarios sobre la versión: 1.0 (0)
No hay comentarios