2010-03-05 4 views
0

Je travaille sur une simulation. Pour cette simulation, j'ai besoin de 20 nœuds (statiques) puis chaque nœud a une file d'attente associée. Cette file d'attente peut contenir n'importe quel nombre de valeurs. Quelle serait la meilleure façon de mettre en œuvre cela en C? Je visais à avoir chacune des files d'attente étant une liste simple liée, mais comment puis-je effectivement créer plusieurs files d'attente, une pour chaque noeud ??création d'une liste de files d'attente

Merci, Toute aide serait très appréciée

Répondre

2

Fondamentalement, vous devez créer un struct pour la file d'attente, qui est un simple liste chaînée:

typedef struct queue_t { 
    int data; /* the date in the queue, can be anything, not only an int */ 
    struct queue_t* next; /* pointer to the next in the queue */ 
} queue_t; 

Et puis un autre est la liste de 20 files d'attente:

queue_t *list_of_queues[20]; 

C'est la manière la plus simple de s'y prendre, à mon humble avis.

Edit: Fait le tableau de struct dans un tableau de pointeurs

+0

auriez-vous définir un pointeur à la tête de la liste, pour chaque file d'attente alors? serait-ce list_of_queues [1] * HeadList = NULL – stephen

+1

@stephen: Je remplacerais l'exemple ci-dessus par 'struct queue_t * list_of_queues [20];' de sorte que 'list_of_queues [t]' contienne le pointeur de la file d'attente pour le noeud 't'. – bta

+0

@bta: Je suis d'accord. J'ai changé l'exemple comme vous l'avez suggéré. –