Primeiro precisamos entender: o que são as estruturas dinâmicas?
As estruturas dinâmicas têm a capacidade de expansão de acordo com a quantidade de elementos que lhes são adicionados. Neste tipo de estrutura, não é atribuído um comprimento fixo, pois seu tamanho limite é a capacidade de memória, onde é muito difícil ocupá-la totalmente. As estruturas mais utilizadas são as filas, pilhas, listas, tabelas de espalhamento e árvores. Neste artigo, explicarei um tipo muito peculiar de estrutura, a fila circular dinâmica.
Antes de começar a falar sobre fila circular dinâmica, devemos saber o que é uma fila em si. Filas são estruturas que seguem a politica de FIFO (Firstin ,First out ), ou seja, o primeiro a entrar é o primeiro a sair. Um exemplo clássico é uma fila de banco, a primeira pessoa que chegou na fila será atendida e sairá do banco e assim por diante, logo, nunca vai acontecer de cortarem sua vez.
Qual a diferença entre uma fila dinâmica e uma fila circular dinâmica?
No caso da fila dinâmica, perdemos os dados quando removidos, por outro lado, na fila circular dinâmica não temos este problema, pois não ocorre a perca dos dados, apenas são alterados os indicadores de inicio e fim da fila. Apenas são realocados os ponteiros.
Cada elemento da lista é chamado de Nó e, portanto, precisaremos definir esta classe em nosso código.
A classe nó funciona como uma espécie de "caixa", onde colocamos conteúdo (podendo ser um objeto ou uma variável) e apontamos para o próximo elemento, fazendo uma espécie de amarração dos dados para podermos percorrê-los.
Neste exemplo usarei a classe nó com os atributos públicos para facilitar o entendimento.
Atributos e Métodos da classe Nó
- publicint dado - levaremos em consideração somente dados inteiros positivos
- publicNoFilaproximo - aponta para o próximo conteúdo da fila.
- (Construtor) - publicNoFila(int dado) - neste método construtor, iremos iniciar o dado sempre com o argumento recebido e o campo proximo como nulo.
Listagem 1: Definição da classe Nó
publicclassNoFilaCircular {
publicNoFilaCircularproximo;
publicint dado;
publicNoFilaCircular(int dado){
this.proximo = null;
t
...
Exibição do post interrompida. Para ler conteúdo completo,
clique aqui