Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Ali Awada

C Exercício de lista em c

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

***[ Olá, sou estudante de Ciências-Física, e tenho dialeto C ANSI como hobby, C'hobby rsrs!

      Meu contato com C/Python foi na matéria Introdução à Computação. ]

 

 

UPDATE:

Em 09/07/2018 às 15:22, Ali Awada disse:

e de remover primeiro no ex 2

Ou seja, lista é uma variável do tipo Cliente; sua utilidade é copiar o próximo cliente, já variável cliente é do tipo ponteiro de Cliente, vai receber endereço do cliente atual.

 

 

Quando pensei em elaborar identificadores para as funções, optei por usar verbos que indicam ação.

snake_case:

/* atenda_clt --- retirar outro cliente da fila */
void atender_clt(&fila, &proximo);
Spoiler

void atender_clt(tpCliente * fila, tpCliente ** proximo) {
  if (fila == NULL) {
    	printf("Todos Clientes atendido(s)!\n");
    	return;
  }
  else {
    	* proximo = fila;
    	* fila = * proximo->proximo;
    	printf("1 Cliente atendido(s)!\n");
    	return;
  }
}

 

Dúvidas, sugestões e dicas?

Editado por AnsiC
Fazendo do português algo mais legível

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×