10/100 Dias Estudando Estruturas de Dados - Listas Encadeadas: Inserção e Remoção ⛓️
As operações mais comuns em listas encadeadas são a inserção e a remoção. O objetivo deste artigo é destacar alguns pontos importantes sobre esse tema. Caso você não saiba o que são listas encadeadas, recomendo acessar o artigo anterior que trata desse assunto.
Inserção
Nas listas encadeadas, as posições não são tão importantes. Isso ocorre devido à independência dos elementos; cada elemento pode estar logicamente encadeado em qualquer lugar da lista.
Diferentemente de estruturas como pilhas e filas, as listas encadeadas oferecem mais liberdade. Você pode inserir elementos no início, meio ou final da lista, e até mesmo ordená-los de forma crescente ou decrescente. Além disso, a remoção também pode ocorrer em qualquer parte da lista.
Dada a seguinte lista encadeada:
começo: 2
Insira a seguinte tarefa: Pratica de inglês
Inserção no INICIO
VET[5].prox <- comeco; //PRIMEIRO PASSO
começo <- 5; // SEGUNDO PASSO
Inserção no MEIO
VET[5].prox <- VET[2].prox; //PRIMEIRO PASSO
VET[2].prox <- 5; // SEGUNDO PASSO
Inserção no FINAL
VET[5].prox <- null; //PRIMEIRO PASSO
VET[1].prox <- 5; // SEGUNDO PASSO
Notou algo? Está havendo uma repetição de código desnecessária. Portanto, vamos criar um método para inserir valores em nossa lista.
modulo inserir(int: novo, int: antecessor) {
VET[novo].prox <- antecessor;
antecessor <- novo;
}
Reduzimos as inserções a:
inserir(5, comeco); //INSERI NO INICIO
inserir(5, VET[2].prox); //INSERI NO MEIO
inserir(5, VET[1].prox); //INSERI NO FINAL
Remoção
Para um fácil entendimento, considere que os elementos removidos são ‘desligados’ da lista, ou seja, desvinculados. Não se preocupe com memória ou algo do tipo.
Exemplo de remoção
VET[2].prox <- VET[4].prox;
Claro que existem formas para otimizar tanto a inserção quanto a remoção. No entanto, a base de tudo é essa.
Agradeço pela a atenção! 🚀