Quem nunca teve o problema clássico de ter que armazenar uma quantidade X de valores, sem limite máximo e com buscas, remoção e adição em qualquer lugar de forma rápida? Pois bem as listas estão ai exatamente para isso. Claro, poderíamos criar um vetor com um número X, e caso precisa-se, utilizaríamos realloc() para aumentar o vetor. Porém, qualquer coisa que fizéssemos com um vetor (ordernar, busca, remoção, adição) é muito custosa, uma lista ligada nos permite fazer isso de forma rápida, customizáda, e econômica. Vamos explicar aqui a lista duplamente ligada, uma das mais completas, porém vamos mostrar também a teoria de suas variações (lista ligada e lista circular).
(more…)