Как вывести все элементы очереди?

276
19 декабря 2017, 18:38

Всем привет. Создал очередь , как вывести первый элемент понял. А как вывести все элементы?

#include <iostream>
using namespace std;
struct Node
{
    int data;
    Node* next;
};
struct Queue
{
    int size;
    Node* first;
    Node* last;
};
void Creation(Queue* Q)
{
    Q->first = new Node; // выдялем память под новый элемент:
    Q->first->next = NULL;
    Q->last = Q->first;
    Q->size = 0;
}
void Add(Queue* Q)
{
    int value;
    cout << "Value";
    cin >> value;
    Q->last->next = new Node;
    Q->last = Q->last->next;
    Q->last->data = value;
    Q->last->next = NULL; // обнуление указателя на след.элемент
    Q->size++;
}
int top(Queue* Q)
{
    return Q->last->next->data;
}
bool Full(Queue* Q)
{
    if (Q->first == Q->last) return true;
    else return false;
}
int main()
{
    Queue Q;
    Creation(&Q);
    for (int i = 0; i < 5; i++)
    {
        Add(&Q);
    }
    return 0;
}
Answer 1

В принципе - примерно так:

void Print(Queue* Q)
{
    Node * n = Q->first;
    while(n)
    {
        cout << n->data << "  ";
        n = n->next;
    }
    cout << endl;
}

Но вы ухитряетесь в first хранит указатель не на реальные данные, а на какой-то элемент с мусором. Исправьте эту ошибку.

Далее, у вас какая-то странная проверка "заполненности" (что это вообще такое - полная очередь?) в Full. Может, пустоты?

И последнее - это - не С++. Это голый С с выводом в cout. Но не С++. Именно поэтому я в вашем же стиле написал Print...

READ ALSO
Перевести код из Pascal в C++ [требует правки]

Перевести код из Pascal в C++ [требует правки]

помогите перевести пожалуйста

201
Ошибка с динамическим массивом char

Ошибка с динамическим массивом char

Доброго времени суток, возникла следующая проблема: Нужно возвести в степень(n>30) число xc++ я только начал изучать, не будьте слишком строги,...

287
Проверка целостности S19(SREC) файла C++

Проверка целостности S19(SREC) файла C++

У меня есть файл прошивки для контроллера в формате S19 (SREC)Как я понял внутри файла есть чексуммы

201