Всем привет. Создал очередь , как вывести первый элемент понял. А как вывести все элементы?
#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
...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Доброго времени суток, возникла следующая проблема: Нужно возвести в степень(n>30) число xc++ я только начал изучать, не будьте слишком строги,...
У меня есть файл прошивки для контроллера в формате S19 (SREC)Как я понял внутри файла есть чексуммы