Pile & File en C
erebenyx
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
erebenyx Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
erebenyx Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
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
- .Bin file - Guide
- Host file - Guide
- .Dat 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
25
Date d'inscription
Statut
Membre
Dernière intervention
Merciii ThyB ^^ , vraiment tu m'avais éclairer plein de choses :-)