Serão apresentadas a seguir as operações de Lista Ligada para inserir no meio, remover e buscar, bem como as implementações na linguagem de programação Java. Para as operações em pseudocódigo, utilizaremos as seguintes definições de registro:
// definição do tipo registro No com os campos abaixo
tipo No = registro
elemento ← 0 numérico_inteiro; // campo que armazena o elemento
prox ← nulo No; // campo que armazena o endereço do próximo nó
fimregistro;
Onde o campo “elemento” armazena o elemento e o campo “prox” é o ponteiro que armazena o endereço do próximo nó que contém o elemento seguinte da lista ligada.
// definição do tipo registro ListaLigada com os campos abaixo
tipo ListaLigada = registro // o tipo registro chama-se ListaLigada
primeiro ← nulo No; // campo primeiro que armazena o primeiro elemento da lista
ultimo ← nulo No; // campo ultimo que armazena o último elemento da lista ligada
fimregistro;
Onde o campo “primeiro” é um ponteiro que armazena o endereço do primeiro elemento da lista ligada e o campo “último” é um ponteiro que armazena o endereço do último elemento da lista.
“InserirMeio” é um módulo-procedimento da operação Inserir no Meio que recebe como parâmetro um elemento do tipo No a ser inserido e a posição onde ele deve estar e o insere no meio da lista ligada.
InserirMeio(NovoNo ↑**No**, posicao **numérico_inteiro**)
**início_módulo
Declarar**
NoTemp ← primeiro **No**;
NroNos, posAux ← 1 **numérico_inteiro**;
NroNos ← ContarNos( );
**se** (posicao <= 1)
**então**
InserirInicio(NovoNo);
**senão
se** (posicao > NroNos)
**então**
InserirFinal(NovoNo);
**senão
enquanto (**posAux > (posicao –1)**)**
NoTemp ← NoTemp.prox;
posAux ← posAux + 1;
**fimenquanto;**
NovoNo.prox ← NoTemp.prox;
NoTemp.prox ← NovoNo;
**fimse;
fimse;
fim_módulo;**
Em Java, o método InserirMeio.

“Remover” é um módulo-procedimento que recebe o elemento a ser removido da operação e, se o elemento não existir ou a lista ligada estiver vazia, ele não fará nada. Caso contrário, removerá a primeira ocorrência desse elemento da lista ligada.
Remover (elemento **numérico_inteiro**)
**início_módulo
Declarar**
NoTemp ← primeiro **No**;
NoAnt ← **nulo** No;
**se (**primeiro.elemento = elemento**)
então**
primeiro ← primeiro.prox;
**senão
enquanto (**NoTemp <> **nulo e** NoTemp.elemento <> elemento**)**
NoAnt ← NoTemp;
NoTemp ← NoTemp.prox;
**fimenquanto;
se (**NoTemp <> **nulo)
então**
NoAnt.prox ← NoTemp.prox;
**fimse;
se (**NoTemp = ultimo**)
então**
ultimo ← NoAnt;
**fimse;
fimse;
fim_módulo;**
O método remover no Java.

“BuscarNo” é um módulo-função que recebe o elemento a ser pesquisado da operação Buscar e retorna o nó cujo elemento foi pesquisado.
**No** BuscarNo (elemento **numérico_inteiro**)
**início_módulo
Declarar**
i ← 1 **numérico_inteiro**;
NoTemp ← primeiro **No**;
**enquanto** (NoTemp <> **nulo**) **faça
se** (NoTemp.elemento = elemento)
**então**
escrever ("No " , NoTemp.elemento , " posição " , i);
**retornar** NoTemp;
**fimse;**
i ← i + 1;
NoTemp ← NoTemp.prox;
**fimenquanto;
retornar** **nulo**;
**fim_módulo;**
Método BuscarNo no Java.
