Всем привет. Создал очередь , как вывести первый элемент понял. А как вывести все элементы?
#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;
}
В принципе - примерно так:
void Print(Queue* Q)
{
Node * n = Q->first;
while(n)
{
cout << n->data << " ";
n = n->next;
}
cout << endl;
}
Но вы ухитряетесь в first хранит указатель не на реальные данные, а на какой-то элемент с мусором. Исправьте эту ошибку.
Далее, у вас какая-то странная проверка "заполненности" (что это вообще такое - полная очередь?) в Full. Может, пустоты?
И последнее - это - не С++. Это голый С с выводом в cout. Но не С++. Именно поэтому я в вашем же стиле написал Print...
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости