Videolivro 4 - listas encadeadas

3. Inserção no início da lista

Embora a lista permite a inserção de elementos em qualquer posição, faremos primeiramente a inserção de um elemento no início da lista.

Caso a lista esteja vazia, ou seja, é o primeiro elemento a ser inserido, ele será considerado ao mesmo tempo o primeiro e o último elemento, como vimos na figura anterior, aqui repetida:

primeiroeultimo

Por que isso?

Porque se voltarmos observarmos o construtor da classe, criado anteriormente, tanto primeiro quanto último apontam par Null. Não é mesmo?

Relembrando o construtor da classe
	ListaSimples(){
		primeiro = null;
		ultimo = null;
	}

Caso contrário, deve devem ser realizadas duas operações:

1) O novo elemento vai apontar para o primeiro.

2) O primeiro passa a ser o novo elemento.

Vejamos a animação:


O procedimento em pseudocódigo, escrito por Puga e Risseti (2016, p. 215) é assim implementado:

Pseudocódigo do procedimento inserirInicio
Procedimento inserirInicio (novoNo: noSimples)
Início
   se (listaSimples.primeiro = nulo )
        então listaSimples.primeiro \( \leftarrow \) novoNo;
                   listaSimples.ultimo  \( \leftarrow \) novoNo;
         senão
                  novoNo.proximo \( \leftarrow \) listaSimples.primeiro;
                  listaSimples.primeiro  \( \leftarrow \) novoNo;
   fimse;
Vejamos como construir este procedimento em Java (adaptado de PUGA; RISSETI, 2016, p. 215):
Procedimento inserirInicio em Java
public void inserirInicio (NoSimples novoNo) {
	if (primeiro==null) {
		primeiro = novoNo;
		ultimo = novoNo;
		}
	else
	{
		novoNo.proximo = primeiro;
		primeiro = novoNo;
	}

}