fila
Lista circular simplesmente encadeada:
Em uma lista simplesmente encadeada o último elemento sempre apontará para o primeiro elemento formando um ciclo, para encontrar o elemento anterior basta percorrer toda a lista, por isso a necessidade de se utilizar um ponteiro de referencia (auxiliar), que irá guardar o primeiro valor. A busca pode ser feita a partir de qualquer elemento da lista, entretanto esse tipo de lista é ineficaz para realizar certas funções como: Remover o último elemento.
As principais operações que podem ser feitas em uma Lista circular simplesmente encadeada são: Criar, inserir no final, busca, inserir no inicio da lista, e entre outras operações.
A lista é vazia quando o ponteiro para o seu inicio é nulo.
Criação de uma lista simplesmente encadeada:
Para criar uma lista simplesmente encadeada deve se manter uma variável armazenando sempre o endereço do primeiro elemento da lista.
Exemplo:
Void criar (Lista *lista){ lista->fim = NULL; tamanho = 0;
}
Exemplo de uma rotina para contar o numero de elemento em uma lista circular simplesmente encadeada: int tamanho de elementos da lista(ficha plista) { int quantidade=0; while(plista!=null){ quantidade++; plista = plista->próximo;
}
Return quantidade;
Remoção de um elemento:
Para remover um elemento de uma lista simplesmente encadeada dever se procurar o nodo imediatamente anterior a ele, devendo este ser encadeado ao seguinte da lista, sendo depois liberada a posição que o nodo ocupava, contudo caso a remoção seja do primeiro elemento o ponteiro da lista