DEV Community

Cover image for Dia 20 - Reimplementando lista circular duplamente encadeada
Matheus Gomes
Matheus Gomes

Posted on

Dia 20 - Reimplementando lista circular duplamente encadeada

Fiz alguns ajustes na versão incial da minha lista, agora ela atende os requisitos dispostos no material do professor Maziero. Ajustei para passar os testes, e também resolvi utilizar readaptar para C. A compilação juntamente com o arquivo de teste disponibilizado me pareceu menos problemática desse modo.

Revisitando o código dessa lista, precisei revisitar listas mais simples que vem antes da circular duplamente encadeada, assim consegui montar um raciocínio sólido na hora de codificar.

Lista duplamente encadeada

É uma estrutura na qual cada nó contém três partes: Valor, ponteiro para o próximo nó, e ponteiro para o nó anterior.

Permite navegação bidirecional, e para remover ou adicionar um nó, é necessário somente ajustar os ponteitos do nó anterior e do nó seguinte.

[head] <-> [nó1] <-> [nó2] <-> [tail]
Enter fullscreen mode Exit fullscreen mode

Lista circular

Pode ser simplesmente encadeada (sentido unilateral) ou duplamente encadeada (esse é o que estou usando para o projeto).
O último nó da lista está conectado ao primeiro, o que faz com que a lista não tenha um ponto de término natural.
A lista pode ser percorrida indefinidamente, pois ao chegar no final, ela retorna ao início.

Lista circular duplamente encadeada e sua relação com sistemas operacionais

Utilizar uma lista circular duplamente encadeada, faz com que o sistema operacional tenha caracterísica de escalonamento circular.

Dito isso, após o último processo ser executado, o sistema retorna ao primeiro e continua a execução.

Imaginando que um sistema operacional possui três processos:

[P1] <-> [P2] <-> [P3] <-> [P1] ...
Enter fullscreen mode Exit fullscreen mode

Após o P3 terminar seu tempo de execução, a lista voltará diretamente para P1, garantindo uma execução contínua.

O código atual do sistema operacional pode ser encontrado aqui.

resultados dos testes

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more