Bonjour,
Depuis plusieurs jours, je tente de trouver la solution à mon problème que voici :
J'ai un ruban de données comme ceci : 0 1 0 0 1 0 1 1
Et je voudrais pouvoir me déplacer en avant de deux cases par exemple et ensuite revenir en arrière d'une case (comme avec une machine de Turing).
Voilà ce que j'ai fait (j'ai simplifié le code) :
Donc on voit bien que dans le premier déplacement à droite, r_temp->prec ne contient rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #include <stdio.h> #include <stdlib.h> #include <string.h> struct elem_ruban { char c; // Elément actuel struct elem_ruban* prec; // Précédent struct elem_ruban* suiv; // Suivant }; typedef struct info_ruban { int taille; // Taille du ruban struct elem_ruban *debut; // Début du ruban struct elem_ruban *fin; // Fin du ruban } ruban; int main(int argc, char *argv[]) { ruban *r = NULL; // Le ruban // Ajout des éléments dans le ruban ... // Déplacement dans le ruban struct elem_ruban *r_temp = malloc(sizeof *r_temp); r_temp=r->debut; while (pas_fini) { ... if (deplacement_droite==0) { r_temp=r_temp->suiv; } else if (deplacement_gauche==0) { r_temp=r_temp->prec; } ... }
Ce qui a pour conséquence que je ne peux pas me déplacer à gauche.
En espérant que vous pourrez m'aider, merci.
Partager