C: Como funciona o próximo struct node *? [fechado]

Fechado . Esta pergunta precisa de detalhes ou clareza . Atualmente não está aceitando respostas.

Comentários

  • Simplesmente declará-lo como Node* não aponta para lugar nenhum, apenas informa ao compilador que ' um ponteiro para algum Node (ou nenhum Node). Deve haver um código real que defina o ponteiro next para apontar para o próximo Node. É sobre isso que você estava confuso?
  • Como (ainda) não existe nenhum struct Node, nenhum membro existe. Portanto, nenhum membro aponta para lugar nenhum.

Resposta

Seu código é apenas um pequeno pedaço de uma lista vinculada.

A ideia é que sua lista consista em n ocorrências da estrutura que você chamou de “Nó”. Você precisa de um ponteiro para o PRIMEIRO deles, esse ponteiro informa a localização da memória desta primeira estrutura (normalmente você solicita o espaço para isso manualmente com malloc). A estrutura deste bloco de memória é definida por sua estrutura “Nó”. Ele informa que primeiro existem alguns bytes para o int (sizeof int informa como mutch) e, em seguida, alguns bytes para um endereço (este é o seu ponteiro “próximo”). No último Item da sua lista encadeada você costuma usar null como valor para next, desta forma você pode verificar se o seu item ativo é o último. Para adicionar um Item à sua lista, você deve alocar a memória para ele e alterar o próximo ponteiro do último item para a localização da memória malloc fornecida. (E não se esqueça de definir o próximo ponteiro do item que você acabou de criar como nulo.)

Dessa forma, uma lista vinculada funciona. Espero que isso ajude um pouco! imagem de lista vinculada

Comentários

  • Na verdade, seria mais correto ter a seta de " próximo " apontando para " Objeto " (ou talvez ainda melhor, no canto superior esquerdo da caixa a seguir). Tal como está, parece que ' está apontando para o " próximo " membro da estrutura, mas na realidade ele ' está apontando para o endereço de base da próxima instância de dados '. Você também pode escolher para qual elemento final ' s " próximo " deve apontar; pode apontar para, por exemplo NULL (nesse caso, a lista só pode ser percorrida em uma direção) ou pode apontar para o primeiro elemento da lista (formando uma lista circular ligada).
  • Você também pode, é claro, ter cada membro da lista aponta tanto no " próximo " e no " elemento " anterior da lista. Isso requer um pouco mais de contabilidade ao modificar a lista, mas permite percorrer a lista em qualquer direção, o que pode ser vantajoso nas leituras. Como tudo na engenharia, é ' uma compensação.

Resposta

Isso faz parte de uma definição de tipo. Ele por si só não aponta para nada, pela mesma razão que você não pode colocar um sofá de verdade e uma TV dentro de uma sala de estar desenhada em um conjunto de plantas de uma casa. Ele simplesmente especifica “isto é o que deve ser inserido aqui”.

A maneira como aponta para o próximo nó em uma lista vinculada é que, quando alguém realmente cria os nós, eles atribuem um valor ao campo descrito por essa definição, que é um ponteiro que contém o endereço de outro Node.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *