Codigo de listas en c

Solo disponible en BuenasTareas
  • Páginas : 2 (365 palabras )
  • Descarga(s) : 0
  • Publicado : 8 de marzo de 2012
Leer documento completo
Vista previa del texto
#include
#include


struct musica{
char nombre[20];
char artista[20];
int ano;
struct musica *sig;
};typedef struct musica music;

struct lista{
music *inicio;
music *final;
int num;}Lista;typedef struct lista list;//Lista funciona como si se definiera un elemento lista en el main

void inicializar();
void visualizar();
void eliminar();
void insertar();
void llenar(music*aux);
int menu();


int main(){
inicializar();
menu();
return 0;
}

int menu(){
int opc;
menu:
printf("Bienvenido a su biblioteca musical\nQue opcion desearealizar?\n\n");
printf("1) Insertar\n");
printf("2) Visualizar\n");
printf("3) Eliminar\n");
scanf("%d",&opc);

switch (opc){
case 1:
insertar();break;
case 2:
visualizar();
break;
case 3:
eliminar();
break;
default: printf("Opcion no valida");goto menu;
}
system("pause");
return 0;
}

void inicializar(){
Lista.inicio=NULL;
Lista.final=NULL;
Lista.num=0;
menu();
}

void insertar(){
music *nuevo;nuevo = (music*)malloc(sizeof(music));

if (Lista.num==0){
Lista.inicio=nuevo;
Lista.final=nuevo;
Lista.num++;
nuevo->sig=NULL;llenar(nuevo);
}
else {

Lista.final=nuevo;
Lista.num++;
nuevo->sig=NULL;
music *tmp;
tmp=Lista.inicio;

while (tmp->sig!=NULL){tmp=tmp->sig;
}

tmp->sig=nuevo;
llenar(nuevo);
}
system("pause");
system("cls");
menu();
}

void eliminar(){
music *borrar;
borrar=Lista.final;if(Lista.final==Lista.inicio){
Lista.final=NULL;
Lista.inicio=NULL;
Lista.num=0;
free(borrar);

}

else {
music *tmp=Lista.inicio;...
tracking img