Maison >développement back-end >C++ >Dia - Réimplémentation d'une liste circulaire doublement liée

Dia - Réimplémentation d'une liste circulaire doublement liée

Susan Sarandon
Susan Sarandonoriginal
2024-10-20 06:11:30334parcourir

J'ai apporté quelques ajustements à la version initiale de ma liste, elle répond désormais aux exigences énoncées dans le matériel du professeur Maziero. Je l'ai ajusté pour réussir les tests, et j'ai également décidé d'utiliser readapt pour C. La compilation avec le fichier de test disponible semblait ainsi moins problématique.

En revisitant le code de cette liste, j'avais besoin de revisiter des listes plus simples qui précèdent celle circulaire à double chaîne, afin d'avoir pu élaborer un raisonnement solide lors du codage.

Liste doublement chaînée

C'est une structure dans laquelle chaque nœud contient trois parties : valeur, pointeur vers le nœud suivant et pointeur vers le nœud précédent.

Permet la navigation bidirectionnelle, et pour supprimer ou ajouter un nœud, il suffit d'ajuster les points du nœud précédent et suivant.

[head] <-> [nó1] <-> [nó2] <-> [tail]

Liste circulaire

Il peut être simplement chaîné (sens unilatéral) ou double chaîné (c'est ce que j'utilise pour le projet).
Le dernier nœud de la liste est connecté au premier, ce qui signifie que la liste n'a pas de point final naturel.
La liste peut être parcourue indéfiniment, car lorsqu'elle arrive à la fin, elle revient au début.

Liste circulaire doublement liée et sa relation avec les systèmes d'exploitation

L'utilisation d'une liste circulaire à double lien confère au système d'exploitation une fonction de mise à l'échelle circulaire.

Cela dit, une fois le dernier processus exécuté, le système revient au premier et continue l'exécution.

Imaginer qu'un système d'exploitation comporte trois processus :

[P1] <-> [P2] <-> [P3] <-> [P1] ...

Une fois que P3 a terminé son temps d'exécution, la liste reviendra directement à P1, garantissant une exécution continue.

Le code actuel du système d'exploitation peut être trouvé ici.

Dia - Reimplementando lista circular duplamente encadeada

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn