// Lista.h
// Declaração da classe cLista    ( Lista de Alunos )
//      Implementação com a técnica da sentinela

// Aula de 3 de Janeiro de 2002

#include "aluno.h"

class cLista
{
	class cElemLista     // Classe privada de cLista
	{
	public :
		cAluno Aluno;
		cElemLista *Proximo;
	
		cElemLista() { Proximo = 0;};
	};

	int NrElementos;
	cElemLista *Sentinela;	// ponteiro para o elemento de controle , à cabeça da lista
	cElemLista *Tail;	// ponteiro para o último elemento da lista
	
public :
	cLista();
	~cLista();   // destrutor
	
	bool Inserir( cAluno Al  );				// Inserção no fim
	bool Remover( int NrAl  );				// Remove o aluno Nr 'NrAl'	
	cAluno *Obter( int pos );               // Obtem o aluno que está na posição 'pos'
	int GetNrElementos();					// Retorna o nr de elementos da lista

private :
	bool Procurar( int NrAl, cElemLista* &pEl , cElemLista* &pAnterior );
};




