3.3.1 不循环的顺序队列

Queue.h

#pragma once
#include<iostream>
using namespace std;
class Queue
{
public:
    int front, rear;
    int* elements;
    int maxSize;

    Queue(int size = 10) {
        maxSize = size;
        elements = new int[maxSize];
        front = rear = 0;
    }

    bool IsFull() {
        return rear == maxSize;
    }
    bool IsEmpty() {
        return rear == front;
    }
    bool Enqueue(int e) {
        bool res = true;
        if (IsFull() == true) {
            res = false;
        }
        else {
            elements[rear++] = e;
        }
        return res;
    }
    bool Dequeue(int& e) {
        bool res = true;
        if (IsEmpty() == true) {
            res = false;
        }
        else {
            e = elements[front++];    
        }
        return res;
    }
};

main.cpp

#include"Queue.h"

int main() {
    Queue q;
    int temp;
    bool bl;
    int arr[] = { 1,3,5,7,9 };
    for (int i = 0; i < 5; i++) {
        bl = q.Enqueue(arr[i]);
        if (bl == false) {
            cerr << "Overflow!!!" << endl;
            exit(1);
        }
    }
    while (q.IsEmpty() == false) {
        bl = q.Dequeue(temp);
        if (bl == false) {
            cerr << "Empty!!!" << endl;
            exit(1);
        }
        cout << temp << endl;
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/SlowIsFast/p/12596596.html
今日推荐