Я не могу заставить это работать должным образом, я пытаюсь создать файл заголовка для очереди строк, который имеет функции для pop, который возвращает и избавляется от первого значения в очереди, push, который вставляет значение в конец и isEmpty, чтобы проверить, пуста очередь или нет.
#ifndef Queue_h
#define Queue_h
#include <string>
struct Node {
string data;
Node* next;
Node() {
data = "";
next = NULL;
}
};
struct Queue {
Node* first;
Node* last;
Queue() {
first = NULL;
last = NULL;
}
~Queue() {
Node* temp = first;
while (temp != NULL) {
temp = temp->next;
delete first;
first = temp;
}
}
void push(string input) {
if (isEmpty()) {
Node* node = new Node();
first = node;
last = node;
last->data = input;
}
else {
Node* node2 = new Node();
last->next = node2;
last = last->next;
last->data = input;
}
}
string pop() {
if (!isEmpty()) {
string temp = first->data;
Node* tpointer = first;
first = first->next;
delete tpointer;
return temp;
}
return "";
}
bool isEmpty() {
if (first == NULL) {
return true;
}
else {
return false;
}
}
};
#endif
Я получаю кучу ошибок, в которых говорится, что «данные не являются членами узла», «данные - это необъявленный идентификатор», «данные - неизвестный спецификатор переопределения». Я бы скопировал / вставил свой список ошибок, но я не знаю, как это легко сделать.
Редактировать: Теперь я исправил 4 ошибки после исправления моих строковых объявлений: pop не является членом строки 17 очереди, pop неизвестный переопределитель строки 50, синтаксическая ошибка (строка 50, неожиданный токен, предшествующий {строка 50