#include #include #include //#include using namespace std; typedef struct talumno{ int LU; tcad nomyape; int dni; int mat_aprob; int cod_carrera; }; typedef struct tnodo_alu *palumno; typedef struct tnodo_alu{ talumno dato; palumno sig; }; typedef struct tlista_alu{ palumno inicio; int cont; palumno fin; }; //ALUMNOS void iniciar_lista_alu(tlista_alu &lis) { lis.inicio=NULL; lis.fin=NULL; lis.cont=0; } void cargar_alumno(talumno &alu) { cout<<"\nIngrese Lu: "; cin>>alu.LU; cout<<"Ingrese nombre y apellido: "; fflush(stdin); gets(alu.nomyape); cout<<"Ingrese dni: "; cin>>alu.dni; cout<<"Ingrese materias aprobadas: "; cin>>alu.mat_aprob; cout<<"Ingrese cod carrera: "; cin>>alu.cod_carrera; } void crear_alumno(palumno &nuevo) { nuevo=new tnodo_alu; if(nuevo!=NULL) { cout<<"Ingrese valor: "; cargar_alumno(nuevo->dato); nuevo->sig=NULL; } else cout<<"Memoria llena"<sig=lis.inicio; lis.inicio=nuevo; lis.cont++; } } palumno quitar_final_alu(tlista_alu &lis) {palumno aux, i; if(lis.inicio==NULL)//lis.cont==0 lis.fin==NULL aux=NULL; else { if(lis.inicio->sig==NULL) //lis.cont==1 o lis.inicio==lis.fin { aux=lis.inicio; //aux=lis.fin lis.inicio=NULL; lis.fin=NULL; } else {for(i=lis.inicio; (i->sig)!=lis.fin;i=i->sig); aux=lis.fin;//aux=i->sig; lis.fin=i; i->sig=NULL;//lis.fin->sig=NULL; } lis.cont--; } return aux; } void mostrar_alu(talumno alu) { cout<<"\n LU: "<sig) mostrar_alu(i->dato); } void menu_alumno(tlista_alu &lis1) { int op; palumno nuevo, eliminado; do{ system("cls"); menu_gral(op); switch(op) { case 1: cout<<".....Agregar por inicio ......"<dato); delete(eliminado); } else cout<<" No se puede eliminar, lista vacia"<