-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquadruplet.c
More file actions
102 lines (89 loc) · 2.52 KB
/
Copy pathquadruplet.c
File metadata and controls
102 lines (89 loc) · 2.52 KB
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include "quadruplet.h"
// Function Implementations
qTable* initialiserTQ() {
qTable* TQ = (qTable*)malloc(sizeof(qTable));
if (TQ != NULL) {
TQ->tete = NULL;
TQ->nb = 0;
}
return TQ;
}
void afficherTQ(qTable *TQ) {
qNoeud* current = TQ->tete;
printf("\nLes quadruplets :\n");
while (current != NULL) {
afficherQ(current);
current = current->next;
}
}
void supprimer_TQ(qTable *TQ) {
qNoeud* current = TQ->tete;
while (current != NULL) {
qNoeud* temp = current;
current = current->next;
free(temp);
}
TQ->tete = NULL;
TQ->nb = 0;
}
void inserer_TQ(qTable *TQ, qNoeud *Q) {
if (TQ != NULL && Q != NULL) {
Q->next = TQ->tete;
TQ->tete = Q;
TQ->nb++;
}
}
qNoeud* rechercherTQ(qTable *TQ, int address) {
qNoeud* current = TQ->tete;
while (current != NULL) {
if (current->adresse == address) {
return current;
}
current = current->next;
}
return NULL;
}
qNoeud* creer_Q(char operateur[], char* operande1, char* operande2, char* resultat, int adresse) {
qNoeud* Q = (qNoeud*)malloc(sizeof(qNoeud));
if (Q != NULL) {
strncpy(Q->operateur, operateur, sizeof(Q->operateur) - 1);
strncpy(Q->operande1, operande1, sizeof(Q->operande1) - 1);
strncpy(Q->operande2, operande2, sizeof(Q->operande2) - 1);
strncpy(Q->resultat, resultat, sizeof(Q->resultat) - 1);
Q->adresse = adresse;
Q->next = NULL;
}
return Q;
}
void afficherQ(qNoeud* Q) {
if (Q != NULL) {
printf("Adresse: %d, Operateur: %s, Operande1: %s, Operande2: %s, Resultat: %s\n",
Q->adresse, Q->operateur, Q->operande1, Q->operande2, Q->resultat);
}
else {
printf("\n Empty ! \n");
}
}
void afficherTQDansFichier(qTable *TQ, const char *nomFichier) {
FILE *fichier = fopen(nomFichier, "w");
if (fichier == NULL) {
printf("Erreur lors de l'ouverture du fichier %s.\n", nomFichier);
return;
}
qNoeud* current = TQ->tete;
fprintf(fichier, "\nLes quadruplets :\n");
while (current != NULL) {
afficherQDansFichier(current, fichier);
current = current->next;
}
fclose(fichier);
}
void afficherQDansFichier(qNoeud* Q, FILE *fichier) {
if (Q != NULL) {
fprintf(fichier, "%d -( %s, %s, %s, %s)\n",
Q->adresse, Q->operateur, Q->operande1, Q->operande2, Q->resultat);
}
else {
fprintf(fichier, "\n Empty ! \n");
}
}