Création
d'entreprise
Posez votre question Signaler

Pile & File en C

erebenyx 23Messages postés 26 mars 2010Date d'inscription 15 août 2010Dernière intervention - Dernière réponse le 1 avril 2010 à 01:08
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 :-)
Lire la suite 

Pile & File en C »

2 réponses
Réponse
+3
moins plus
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)
#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- 1 avril 2010 à 01:08
Merciii ThyB ^^ , vraiment tu m'avais éclairer plein de choses :-)
Ajouter un commentaire
Ce document intitulé « Pile & File en C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?