2017-04-19 1 views
-1

Je voudrais juste vous poser une question rapide sur la manière d'imprimer le dernier élément d'une file d'attente. Voici ce que j'ai pour le moment:Impression de la clé de nœud par pointeur de queue

struct queue { 
node * head; 
node * tail; 
}; 

void printQ(queue & q) { 
node * p = q.head; 

cout << "QUEUE: "; 

if (q.head == NULL) 
    cout << "empty"; 

while (p != NULL) 
{ 
    cout << p->key << " "; 
    p = p->next; 
} 

cout << " TAIL=" << ?????? // This is where I would like to 
            get it to print the tail but I'm not 
            sure how. 

Merci!

+0

Si vous n'avez pas encore imprimé tous les éléments avec cette boucle, vos liens doivent être rompus. – molbdnilo

Répondre

0

Je en supposant que vous avez struct noeud avec la clé et pointeur vers nœud suivant

Lorsque vous insérez des éléments dans la file d'attente, vérifiez si la file d'attente est vide. Si c'est le cas, faites du nouvel élément le noeud de queue. Et quand vous voulez des données de tail of queue q, faites (q.tail) -> data.