Maison >développement back-end >C++ >Dia - Réimplémentation d'une liste circulaire doublement liée
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.
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]
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.
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.
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!