// cFilaNos.cpp
// Definição da classe cFilaNos
// 28 de Março de 2001

#include <stdafx.h>
#include "cFilaNos.h"

cElLista::cElLista( HTREEITEM eNo ) 
{
	No = eNo;
	Prox = 0;
}

	
cFilaNos::cFilaNos()
{
	Sentinela = new cElLista(0);
	Tail = Sentinela;
	NrElementos = 0;
}

cFilaNos::~cFilaNos()
{
	cElLista *pEl, *pProxEl;

	pEl = Sentinela ;

	while ( pEl )
	{
		pProxEl = pEl->Prox; 
		delete pEl;
		pEl = pProxEl ;
	}

}

// Adiciona no fim
void cFilaNos::Adicionar( HTREEITEM No )
{
	cElLista *pNovo;

	pNovo = new cElLista( No );
	
	Tail->Prox = pNovo;
	Tail = pNovo ;
	NrElementos ++;

}


// Remove no princípio
HTREEITEM cFilaNos::Remover()
{
	cElLista *pElRemover;
	HTREEITEM No;

	pElRemover = Sentinela->Prox;

	if ( pElRemover )
	{
		Sentinela->Prox = pElRemover->Prox;
		No = pElRemover->No;
		if ( pElRemover == Tail)
			Tail = Sentinela;
		delete pElRemover;
		NrElementos--;
		return No;
	}
	else
		return NULL;

}




