Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

algoritme simple de pile ou de file en C

4 réponses
Avatar
jean laurent
Je vois en ce moment en cours (prog en C) les typess abstraits FIFO et LIFO
mais la théorie c bien mais je cherche des sources mettant en forme
ces cas mais en vain.
Si quelqu'un connait une adresse ou je pourrai trouver mon bonheur merci!!!

4 réponses

Avatar
Emmanuel Delahaye
In 'fr.comp.lang.c', "jean laurent" wrote:

Je vois en ce moment en cours (prog en C) les typess abstraits FIFO et LIFO
mais la théorie c bien mais je cherche des sources mettant en forme
ces cas mais en vain.
Si quelqu'un connait une adresse ou je pourrai trouver mon bonheur merci!!!


Analyse rapide :

LIFO :

Données :
Un tableau de données
Un index de lecture/ecriture

Fonctions :
Une fonction d'init
Une fonction d'empilage
Une fonction de désempilage
Une fonction de test vide

FIFO :

Données :
Un tableau de données
Un index de lecture
Un index d'écriture
Un flag vide
Un flag plein

Fonctions :
Une fonction d'init
Une fonction d'écriture
Une fonction de lecture
Une fonction de test vide
Une fonction de test plein

Fait de ton mieux par toi même, et poste ton code.

--
-ed- [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/

Avatar
Jean Charbonneau
Pourquoi n'y a-til pas de fonction test plein dans le cas lifo ? Ainsi qu'un
flag plein ?

"Emmanuel Delahaye" wrote in message
news:
In 'fr.comp.lang.c', "jean laurent" wrote:

Je vois en ce moment en cours (prog en C) les typess abstraits FIFO et
LIFO


mais la théorie c bien mais je cherche des sources mettant en forme
ces cas mais en vain.
Si quelqu'un connait une adresse ou je pourrai trouver mon bonheur
merci!!!



Analyse rapide :

LIFO :

Données :
Un tableau de données
Un index de lecture/ecriture

Fonctions :
Une fonction d'init
Une fonction d'empilage
Une fonction de désempilage
Une fonction de test vide

FIFO :

Données :
Un tableau de données
Un index de lecture
Un index d'écriture
Un flag vide
Un flag plein

Fonctions :
Une fonction d'init
Une fonction d'écriture
Une fonction de lecture
Une fonction de test vide
Une fonction de test plein

Fait de ton mieux par toi même, et poste ton code.

--
-ed- [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/



Avatar
Yves ROMAN

Moi aussi, j'ai ou ai eu de petit soucis avec la liste chaine FIFO.
J'ai un truc (voir code), mais il y a un os dans mon affiche de ma
liste, why?
Si vous avez une idée, je prends.

--------------------------------------------------------------------------------
#include<stdio.h>
#include<alloc.h>
#include<stdlib.h>

/*-------------------------------------------------------------------------*/
/* prototype de la structure liste */
/*-------------------------------------------------------------------------*/

typedef struct cell{int val; struct cell *suiv;} liste;

/*-------------------------------------------------------------------------*/
/* fonctions */
/*-------------------------------------------------------------------------*/

/*-------------------------------AJOUTER-----------------------------------*/

void ajout(liste **pdeb, liste **pfin, int valeur)
{

/*entree de la fctø ---> *pdeb, *pfin, la valeur de pnew->val
sortie de la fctø ---> aucune

+ creation d'un pointeur pour pnew */

liste *pnew=malloc(sizeof(*pnew)); //allocation espace memoire pnew

pnew->val=valeur; // valeur de pnew



Il manque pnew->suiv = NULL ; pour indiquer qu'il n'y a rien apres ton maillon

if(*pfin==NULL)
{
*pdeb=pnew;
*pfin=pnew;
}//fin if

else
{
(*pfin)->suiv=pnew; //chainage
*pfin=pnew;
}//fin else
}//fin ajout

[...]


Avatar
news.u-bordeaux.fr
Yves ROMAN wrote:

Moi aussi, j'ai ou ai eu de petit soucis avec la liste chaine FIFO.
J'ai un truc (voir code), mais il y a un os dans mon affiche de ma
liste, why?
Si vous avez une idée, je prends.

--------------------------------------------------------------------------------
#include<stdio.h>
#include<alloc.h>
#include<stdlib.h>

/*-------------------------------------------------------------------------*/
/* prototype de la structure liste */
/*-------------------------------------------------------------------------*/

typedef struct cell{int val; struct cell *suiv;} liste;

/*-------------------------------------------------------------------------*/
/* fonctions */
/*-------------------------------------------------------------------------*/

/*-------------------------------AJOUTER-----------------------------------*/

void ajout(liste **pdeb, liste **pfin, int valeur)
{

/*entree de la fctø ---> *pdeb, *pfin, la valeur de pnew->val
sortie de la fctø ---> aucune

+ creation d'un pointeur pour pnew */

liste *pnew=malloc(sizeof(*pnew)); //allocation espace memoire pnew

pnew->val=valeur; // valeur de pnew




Il manque pnew->suiv = NULL ; pour indiquer qu'il n'y a rien apres ton maillon


if(*pfin==NULL)
{
*pdeb=pnew;
*pfin=pnew;
}//fin if

else
{
(*pfin)->suiv=pnew; //chainage
*pfin=pnew;
}//fin else
}//fin ajout



[...]


Merci!!! Cela faisait un moment que je tournais autour...
A force d'avoir le nez dessus, je ne voyais plus rien...

THANK!!!