#include "lalunos.h" #include int inserir( Aluno a, LAluno t, int *c, int ord[], int *l) { int caux = *c, laux=*l; int ant = *c; /* --- Inserir a informaçao na primeira posicao livre --- */ t[*l].num = a.num; strcpy(t[*l].nome, a.nome); /* --- Actualizar a primeira posicao livre --- */ *l = ord[*l]; /* --- Inserir na cabeca da lista --- */ if((*c==-1) || (t[*c].num>a.num)) { ord[laux] = *c; *c = laux; } /* --- Procurar a posicao para a frente */ else { while ((caux!=-1)&&(t[caux].num < a.num)) { ant = caux; caux = ord[caux]; } /* --- Inserir no meio ou na cauda --- */ ord[laux] = ord[ant]; ord[ant] = laux; } } int lista( LAluno t, int c, int ord[] ) { while(c!=-1) { printf("%d %s\n", t[c].num, t[c].nome); c = ord[c]; } }