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   -
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

ThyB
 
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   Statut Membre Dernière intervention  
 
Merciii ThyB ^^ , vraiment tu m'avais éclairer plein de choses :-)
0