#pragma once
#include <iostream>
using namespace std;
class Link {
public:
int element;
Link* next;
Link(int ele, Link* nextval) {
element = ele;
next = nextval;
}
Link(Link* nextval) {
next = nextval;
}
Link() {
next = NULL;
}
};
#pragma once
#include <iostream>
#include "Link.h"
using namespace std;
class LQueue:public Link {
private:
Link*front;
Link*rear;
int size;
public:
LQueue() {
size = 0;
front = rear = new Link();
}
~LQueue() {
clear();
delete front;
}
void clear() {
while (front->next != NULL) {
rear = front;
delete rear;
}
rear = front;
size = 0;
}
void enqueue(const int& it) {
rear->next = new Link(it, NULL);
rear = rear->next;
size++;
}
int length()const {
return size;
}
int frontValue()const {
return front->next->element;
}
int dequeue() {
int it = front->next->element;
Link*temp = front->next;
front->next = temp->next;
if (rear == temp)rear = front;
delete temp;
size--;
return it;
}
};