Pile & File en C
erebenyx
Messages postés
33
Statut
Membre
-
erebenyx Messages postés 33 Statut Membre -
erebenyx Messages postés 33 Statut Membre -
Salut,
Je souhaiterais savoir est ce qu'on peut créer des piles & des files (en C) en utilisant des tableaux (parce que d'habitude on utilise des structures de pointeurs pour lès créées!), si oui (On peut les créées avec des tableaux), j'aimerais bien avoir des exemples.
J'attends vos réponses !! Mercii d'avance :-)
Je souhaiterais savoir est ce qu'on peut créer des piles & des files (en C) en utilisant des tableaux (parce que d'habitude on utilise des structures de pointeurs pour lès créées!), si oui (On peut les créées avec des tableaux), j'aimerais bien avoir des exemples.
J'attends vos réponses !! Mercii d'avance :-)
A voir également:
- Pile & File en C
- Pile carte mere - Guide
- .Dat file - Guide
- Host file - Guide
- .Bin file - Guide
- Iso file - Guide
1 réponse
Une pile avec un tableau static c'est faisable facilement
En dynamique autant utiliser une liste (avec les pointeurs), c'est plus simple :)
exemple de pile LIFO (Last In First Out)
bon la c'est un peu fait à l'arrache mais ça compile et ça marche ^^ tu peux facilement ajouter des trucs. J'ai quand même mis une structure et des pointeurs car c'est le bien :]
Les tableaux sont un peu moins adapter pour les files (un peu plus couteux car a chaque pop() tu dois décaler toutes les cases de ton tableau)
J'espère t'avoir aidé :]
En dynamique autant utiliser une liste (avec les pointeurs), c'est plus simple :)
exemple de pile LIFO (Last In First Out)
#include <stdio.h>
#include <stdlib.h>
typedef struct stack
{
int data[100];
int size;
} s_stack;
void init(s_stack* stack)
{
stack->size = 0;
}
void push(s_stack* stack, int elem)
{
if (stack->size < 100)
stack->data[stack->size++] = elem;
else
printf("la stack est pleine\n");
}
int pop(s_stack* stack)
{
if (stack->size > 0)
return stack->data[--stack->size];
else
{
printf("la stack est déjà vide...\n");
return -1;
}
}
int main()
{
s_stack* stack = malloc(sizeof (s_stack));
init(stack);
printf("push : 5\n");
push(stack, 5);
printf("push : 10\n");
push(stack, 10);
printf("push : 15\n");
push(stack, 15);
printf("taille de la stack : %d\n", stack->size);
printf("pop : %d\n", pop(stack));
printf("pop : %d\n", pop(stack));
printf("pop : %d\n", pop(stack));
printf("taille de la stack : %d\n", stack->size);
printf("pop : %d\n", pop(stack));
free(stack);
return 0;
}
bon la c'est un peu fait à l'arrache mais ça compile et ça marche ^^ tu peux facilement ajouter des trucs. J'ai quand même mis une structure et des pointeurs car c'est le bien :]
Les tableaux sont un peu moins adapter pour les files (un peu plus couteux car a chaque pop() tu dois décaler toutes les cases de ton tableau)
J'espère t'avoir aidé :]
erebenyx
Messages postés
33
Statut
Membre
Merciii ThyB ^^ , vraiment tu m'avais éclairer plein de choses :-)