Pile & File en C

Fermé
erebenyx Messages postés 25 Date d'inscription vendredi 26 mars 2010 Statut Membre Dernière intervention 15 août 2010 - 31 mars 2010 à 21:56
erebenyx Messages postés 25 Date d'inscription vendredi 26 mars 2010 Statut Membre Dernière intervention 15 août 2010 - 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 :-)
A voir également:

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)
#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é :]
3
erebenyx Messages postés 25 Date d'inscription vendredi 26 mars 2010 Statut Membre Dernière intervention 15 août 2010
1 avril 2010 à 01:08
Merciii ThyB ^^ , vraiment tu m'avais éclairer plein de choses :-)
0