Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void anadir(tasignatura &a,talumno alumno)
- {
- nodo *nuevo,*ant=NULL,*aux=a.primero;
- char nombre_actual[50],nombre_nuevo[50];
- nombrebuscado(alumno,nombre_actual);
- nuevo=new(nodo);
- if (nuevo!=NULL)
- {
- if(a.primero != NULL) nombrebuscado((*aux).dato,nombre_actual);//controlamos que entre en segunda posición
- if (aux==NULL){//controlamos que la asignatura este vacia
- a.primero=nuevo;
- (*nuevo).sig=NULL;
- (*nuevo).dato=alumno;
- a.longitud=1;
- }
- else(strcmp(nombre_actual,nombre_nuevo)<0)
- {
- (*nuevo).sig=a.primero;
- a.primero=nuevo;
- (*nuevo).dato=alumno;
- a.longitud++;
- }
- else
- {
- nombrebuscado((*aux).dato,nombre_actual);
- while ((*aux).sig != NULL && strcmp(nombre_actual,nombre_nuevo)<0){//llegamos a la posición donde va el alumno
- ant=aux;
- aux=(*aux).sig;
- nombrebuscado((*aux).dato,nombre_actual);
- }
- if ((*aux).sig==NULL && strcmp(nombre_actual,nombre_nuevo)<0){//controlamos que sea la ultima posición
- (*aux).sig=nuevo;
- (*nuevo).sig=NULL;
- }
- else{
- (*nuevo).sig=(*ant).sig;
- (*ant).sig= nuevo;
- }
- (*nuevo).dato=alumno;
- a.longitud++;
- }
- }
- else
- {
- cout<<"No hay memoria suficiente"<<endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement