Considere o trecho de código abaixo a uma fila de atendimento bancário
...
typdef struct cliente {
char nome[64];
int conta;
struct cliente *proximo;
}tpCliente;
...
void novoCliente(tpCliente *cabeca, tpCliente **cliente);
void atendeCliente(tpCliente *cabeca, tpCliente **cliente);
...
1)Implemente a função novoCliente, que tem por objetivo colocar o cliente no fim da fila de atendimento bancário (o ultimo cliente a entrar na fila deve ser o ultimo a ser atendido). Utilize o protótipo definido acima;
2)Implemente a função atendeCliente, que tem por objetivo retirar da fila de atendimento o primeiro cliente e devolve-lo para função chamadora através do ponteiro **cliente. Utilize o protótipo definido acima;
Usei a função de inserir na direita, ou seja, no final de uma lista encadeada no ex 1
tpCliente* inserir_direita(tpCliente *aux ,int v)
{
tpCliente *primeiroNo = aux;
tpCliente *novoNo = (tpCliente*) malloc (sizeof(tpCliente));
novoNo->valor = v;
novoNo->proximo = NULL;
if(aux != NULL)
{
while(aux->proximo != NULL){
aux = aux->proximo;
}
aux->proximo = novoNo;
return primeiroNo;
}else{
return novoNo;
}
}
e de remover primeiro no ex 2
void removerPrimeiro()
{
if (primeiroNo != NULL)
{
tpCliente *no = primeiroNo;
primeiroNo = no->proximo;
free(no);
}
}
mas não to sabendo como adaptar para esse exercício com dois ponteiros, qualquer ajuda é bem vinda, agradeco desde ja.