Ir ao conteúdo
  • Cadastre-se

Problema de lista circular


DIAa

Posts recomendados

Alguém pode me ajudar a resolver este exercício? Estou começando a aprender e empaquei neste exercício do livro do sedgewick.

 

#include <stdio.h>
#include <stdlib.h>

typedef struct node* link;
struct node { int item; link next; };

 

int main()
{
    int i, N, M;
    link t = malloc(sizeof(*t)), x = t;
    printf("Digite o numero de pessoas e M:");
    scanf("%d %d", &N, &M);
    t->item = 1;

    t->next = t;
    for (i = 2; i <= N; i++)
    {
        x = (x->next = malloc(sizeof(*x)));
        x->item = i; x->next = t;
    }
    while (x != x->next)
    {
        for (i = 1; i < M; i++) x = x->next;
        x->next = x->next->next; N--;
    }
    printf("%d\n", x->item);
    return 0;
}

 

Quando a lista está sendo construida, cada link é estabelecido duas vezes porque a lista circular é mantida depois que cada nó é inserido. Modifique o programa para construir a lista circular sem este trabalho extra.

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!