Здравствуйте! Делаю класс очереди по примеру
//head.h
//Any classes....
class Queue{
private:
struct Node
{
String str; //Мой класс
Node *next;
};
enum{
Q_SIZE = 10
};
int items;
const int qsize;
Node *front,*rear;
public:
Queue(int);
bool isfull()const;
bool isempty()const;
bool enqueue(const String&);
};
Объект может добавлять в очередь, проверять на заполненность и пустоту
//func.cpp
//Any methods...
Queue::Queue(int qs = Q_SIZE):qsize(qs),front(nullptr),rear(nullptr),items(0){}
bool Queue::isfull()const{
if(items==qsize)return true;
else return false;
}
bool Queue::isempty()const{
if(items==0)return true;
else return false;
}
bool Queue::enqueue(const String &st){
if(isfull())return false;
Node *add = new Node;
add->str = st;
add->next = nullptr;
items++;
if(front==nullptr)front = add;
else rear->next = add;
rear = add;
cout<<st<<" posted in "<<add<<" end has "<<items<<" position\n";
return true;
}
Мне не совсем понятно, зачем сначала в поле структуры записывать адрес следующей структуры, а затем присваивать адрес новой структуры в конец очереди
if(front==nullptr)front = add;
else rear->next = add;
rear = add;
Таких "ужасных" отступов в книге нет. Я по своему писал