数据结构<三> 队列

#include<iostream>
using namespace std;
struct Node{
    int data;
    Node *next;
    Node(const int& Newdata, Node* nextnode=NULL):data(Newdata), next(nextnode){
    }
};
class Queue{
    private:
        Node *front;
        Node *rear;
        int count;
    public:
        Queue();
        ~Queue();
        bool empty();
        void push(int x);
        void pop();
        void clear();
        int Length();
        int Front();
};
Queue::Queue():front (NULL),  rear (NULL), count(0){    
}
Queue::~Queue() {
    clear();
}
void Queue::push(int x) {
    if (front == NULL)
      front = rear = new Node(x);
    else {
        Node *q = new Node(x);
        rear->next = q;
        rear = q;
    }
    count++;
}
int Queue::Length() {
    return count;
}
bool Queue::empty(){
    return front == NULL;
}
void Queue::pop() {
    if (empty()) {
        cout<<"错误"<<endl; 
    }
    Node *q = front;
    front = front->next;
    delete q;
    count--;
}
void Queue::clear() {
    while (front) {
        Node *q = front;
        front= front->next;
        delete q;
    }
    count=0;
}
int Queue::Front() {
    if (empty()) {
        cout<<"错误"<<endl; 
    }
    return front->data;
}
int main() {
    Queue s;
    s.push(1);
    s.push(11);
    s.push(12);
    s.push(13);
    s.push(14);
    s.push(15);
    s.push(16);
    s.push(17);
    cout<<s.Front()<<endl;
    cout<<s.Length()<<endl;
    s.pop();
    cout<<s.Length()<<endl;
    return 0;
}
原文地址:https://www.cnblogs.com/a863886199/p/7595795.html