Ir ao conteúdo

Posts recomendados

Postado

Para praticar suas hard skills em desenvolvimento de software a um nível de programador(a) internacional, você decide que vai trabalhar em um projeto open-source. Assim, ao analisar um dos arquivos-fonte do repositório do projeto, você se depara com o seguinte código em linguagem 😄
 

typedef struct NO{
    int dado;
    NO* prox;
}NO;

typedef struct FILA{
    NO* inicio;
    NO* fim;
} FILA;

FILA *f;

void enfileira(int valor){
    NO* ptr = (NO *) malloc(sizeof(NO));
    ptr->dado = valor;
    ptr->prox = NULL;
    if(f->inicio == NULL)
        f->inicio = ptr;
    else
        f->fim->prox = ptr;
    f->fim = ptr;
}

int desenfileira(){
    NO* ptr = f->inicio;
    int dado;
    if(ptr != NULL){
        f->inicio = ptr->prox;
        ptr->prox = NULL;
        dado = ptr->dado;
        free(ptr);
        return dado;
    }
}

int main(){
    f = (FILA *) malloc(sizeof(FILA));
    f->inicio = NULL;
    f->fim = NULL;
    enfileira(10);
    enfileira(30);
    enfileira(50);
    desenfileira();
    enfileira(14);
}




Assim sendo, responda quais valores que estarão armazenados na fila, imediatamente antes de o programa finalizar sua execução? Escreva os valores começando pelo início da fila, e indo até o fim.

Como responder essa questão.

Postado

@Manoel Constantino   para responder a essa Questão , seria melhor você colocar esse código em algum compilador / IDE e verificar o que acontece ,  e assim fiz , mas esse código não está compilando , precisa fazer modigicações nele e também fiz até que funcionasse , mas no final ele não me mostrou nada . então a resposte seria que não vai mostrar realmente nada , e você é que precisa imaginar tais valores . e não podemos dar respostas prontas .

Postado
25 minutos atrás, Manoel Constantino disse:

@Eder Neumann como responder essa questão

para responder a questão você precisa ter entendido ela, você a entendeu?

 

você consegue responder esta parte ao menos?

1 hora atrás, Manoel Constantino disse:

quais valores que estarão armazenados na fila, imediatamente antes de o programa finalizar sua execução? Escreva os valores começando pelo início da fila, e indo até o fim

 

 

se sim a resposta ad pergunta é como você chegou neste ponto.

Postado

É possível prever o resultado da estrutura de chamadas, supondo que a programação funcione...

 

1 hora atrás, Manoel Constantino disse:

f = (FILA *) malloc(sizeof(FILA));   

 f->inicio = NULL;

 f->fim = NULL;     

enfileira(10);     

enfileira(30);   

enfileira(50);   

desenfileira();     

enfileira(14);

 

seja o exercício.

 

Então temos aqui um fila identificada por 'f' e queremos saber quais são os membros na fila, após enfileirar o de número 14?

Postado
    enfileira(10);
    enfileira(30);
    enfileira(50);
    desenfileira();
    enfileira(14);

 

Não acho que precise consertar o programa se ele estiver errado. Não é o problema seu.

 

Acima tem as coisas objetivas que tal programa deveria fazer. 

o ponto de vista contábil entraram 4 na fila e saiu 1 então devem ter 3 lá. fala saber como desenfileira() funciona() e não deve ser assim difícil. Cada função tem umas poucas linhas....

 

De fato essa tem 10 linhas: 

 

void enfileira(int valor){
    NO* ptr = (NO *) malloc(sizeof(NO));
    ptr->dado = valor;
    ptr->prox = NULL;
    if(f->inicio == NULL)
        f->inicio = ptr;
    else
        f->fim->prox = ptr;
    f->fim = ptr;
}

 

é claro que um ser de bom humor pode colocar em f->inicio o ponteiro para o fim só de sacanagem, mas no normal desenfileira() retira o primeiro da fila então já sabe o que ficou lá... 10, 20 , 30, sai o 10 entra o 14....

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!