2013-04-30 1 views
1

Voici mon problème: je dois mettre en œuvre une pile de liste FIFO/LIFO comme espèces ADT 1. Mon programme est modulaire et disposer d'un module item.h:Déclarant les différents typedefs dans une pile ADT

#ifndef ITEM_H_INCLUDED 
    #define ITEM_H_INCLUDED 

    typedef struct 
    { 
     char stringa[20]; 
     int numero; 
    } Item;   
    #endif // ITEM_H_INCLUDED 

Le head.h module:

#ifndef HEAD_H_INCLUDED 
#define HEAD_H_INCLUDED 

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

#include "item.h" 

void QUEUEinit(); 
int QUEUEempty(); 
void QUEUEput_top(Item); 
void QUEUEput_bottom(Item); 
Item QUEUEget_top(); 
Item QUEUEget_bottom(); 

#endif // HEAD_H_INCLUDED 

Les fichiers main.c et data.c; ce dont j'ai besoin, c'est comment je déclare un QEUEnode struct et où.

Merci pour l'aide :)

+0

Je crois que cet article devrait répondre à votre question. http://stackoverflow.com/questions/252780/why-should-we-typedef-a-struct-so-often-in-c – AlexLordThorsen

+0

plus ou moins, mais cela ne concerne pas les pointeurs. Ce dont j'ai besoin est de déclarer te pointeur du QUEUEnode dans l'entête, puis de définir la structure dans le data.c –

+0

Donc par "déclarer les pointeurs du QUEUEnode" voulez-vous dire configurer vos fonctions pour passer les pointeurs QUEUEnode? – AlexLordThorsen

Répondre

1

Puisqu'aucun de votre QUEUE * fonctions reçoivent une QUEUEnode *, vous pouvez le cacher dans le fichier head.c, ainsi que le QUEUEnode root; qu'ils fonctionnent sur.

Si vous souhaitez utiliser plusieurs files d'attente, il doit probablement figurer dans le fichier head.h afin qu'elles puissent être créées dans main.c. Pour cela, vous devrez également modifier les fonctions pour accepter une file d'attente.

Questions connexes