У меня просто быстрый вопрос о том, как бы вы напечатали последний элемент в очереди. Вот что у меня так далеко:
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.
Спасибо!
Я полагаю, у вас есть структура узла с ключом и указателем на следующий узел
Когда вы вставляете элементы в очередь, проверьте, пуста ли очередь. Если так, сделайте новый элемент хвостовым узлом. А когда вам нужны данные хвоста очереди q, делайте (q.tail) -> data.
Других решений пока нет …