Lista encadeada em C

1396 palavras 6 páginas
Como criar uma lista completa em C
Como inserir nós em qualquer posição da lista
Vamos agora mostrar como criar a função insere() que recebe a LISTA e pergunta ao usuário em que posição o usuário quer inserir o elemento na lista. Ou seja, se queremos inserir na posição 'n', o elemento vai ficar nessa posição 'n' e o que estava lá antigamente vai para frente, para posição 'n+1'.
O usuário vai dizer a posição e está sera armazenada na variável pos.

Podemos inserir desde a posição 1 até a 'tam'.
Obviamente, fora desse intervalo devemos mostrar uma mensagem de erro.
Feita essa verificação da posição, vamos adicionar o elemento na dita posição.

Caso seja posição 1, não devemos nos estressar.
Afinal, inserir um elemento na posição 1 é inserir uma estrutura no início da lista, e já criamos uma função para isto, a insereInicio(), bastando chamar ela: insereInicio(LISTA);

Caso seja em qualquer outra posição, a coisa fica mais trabalhosa.
O segredo para isto é identificar dois elementos.o anterior e o elemento que está naquela posição.

Por exemplo, se queremos colocar um nó na terceira posição, devemos guardar essa posição e a anterior, pois iremos fazer o segundo elemento apontar para o novo nó, e fazer esse novo nó apontar para aquele que estava na terceira posição.

Para isso vamos usar dois ponteiros do tipo node, o tipo de nossa estrutura: o 'atual' e o 'anterior'.
O atual começa no primeiro nó da LISTA, e o anterior não está em uma posição anterior (um aponta para LISTA->prox e o outro para LISTA).

Agora temos que fazer estes dois pontos 'correrem' pela lista até chegar onde queremos.
Vamos usar um laço for para isso, e em cada iteração fazemos o seguinte:
Fazemos o ponteiro 'anterior' receber o ponteiro 'atual', e depois fazemos o 'atual' receber o próximo elemento da lista, que é o 'atual->prox'.

Se queremos chegar na posição 4, por exemplo, devemos fazer esse procedimento 3 vezes, pois partimos da primeira posição da lista. Ou seja,

Relacionados

  • Lista encadeada c
    637 palavras | 3 páginas
  • Lista encadeada em c -
    796 palavras | 4 páginas
  • Lista encadeada c
    778 palavras | 4 páginas
  • Listas Duplamente Encadeadas C++
    492 palavras | 2 páginas
  • Lista encadeada implementada em c
    627 palavras | 3 páginas
  • Lle - lista linear encadeada em c
    481 palavras | 2 páginas
  • Código em Linguagem C para uma lista duplamente encadeada
    814 palavras | 4 páginas
  • Algorítmo de lista encadeada simples linguagem c
    564 palavras | 3 páginas
  • Código de uma agenda usando lista simplesmente encadeada em linguagem c
    527 palavras | 3 páginas
  • Lista encadeada
    2771 palavras | 12 páginas