listas ligadas em c

Alguém pode dar um exemplo de um programa em c, que tenha a criação e manipulação de uma lista ligada.
Acho k normalmente se utiliza em estruturas, mas gostaria que também digam se possível quais as principais utilidades das listas ligadas.

Obrigado pela atenção.
:)
 
Uma lista ligada é mais ou menos um vector 'tuning' :p

A principal vantagem de saberes trabalhares com listas em C e' q vais ficar a dominar de apontadores... referências... e coisas que tal.

Mas prepara-te para muitas dores de cabeça.. ;)

Exemplos não tenho aqui, só no portátil..

Tens vários tipos de listas ligadas:
- lista ligada 'normal' (cada elemento aponta para o seguinte)
- lista duplamente ligada (cada elemento aponta para o seguinte e para o anterior)
- lista circular (parecida com a primeira mas o ultimo aponta para o primeiro)

acho q há mais algumas, mas nao me lembro agora!

cumps
 
para listas ligadas tens mesmo de usar estruturas.

exemplo de uma estrutura:

Código:
struct node{
   int valor;
   struct node *next;
}

recomendo que uses um typedef, mas assim já dá para teres uma ideia...
 
Agora prepara-te, Porque fazer inserções mediante certos criterios, pode dar mesmo muitas dores de cabeça.. Mas o melhor mesmo, é cada vez que quiseres manipular as tuas listas, pegares numa folha de papel, numa caneta, e fazeres os desenhos.. Parece primário, eu sei, mas para que começa é fundamental para perceber o que é que aponta para o quê. Desenhas a tua estruturazita, e a partir daí consegues perceber os erros que cometeste.
 
Alguém pode dar um exemplo de um programa em c, que tenha a criação e manipulação de uma lista ligada.
Acho k normalmente se utiliza em estruturas, mas gostaria que também digam se possível quais as principais utilidades das listas ligadas.

Obrigado pela atenção.
:)

A grande vantagem das listas ligadas é o facto de poderem crescer "livremente", sendo só preciso alocar mais um nó e inserir na lista. Podes também inserir no meio de uma lista se for preciso, coisa que num array por exemplo é complicado. O "tradeoff" disto é que para procurar um elemento numa lista tens de começar numa ponta e comparar tudo até chegar lá, o que é bastante ineficiente...

A melhor maneira de perceber a coisa é mesmo fazendo os bonequinhos e depois implementares em C as funções básicas que manipulam a lista. É simples de fazer e aprende-se bastante :P
 
Back
Topo