대열 의 기본 실현

대열 의 기본 실현
TIP: 매크로 단언 assert (< 표현 식 >);매크로 단언 을 이용 하여 만족 하지 않 으 면 대기 열 이 비어 있다 는 것 을 설명 하고 바로 돌아 갑 니 다.
#include <iostream>
#include <cassert>
using namespace std;
class Queue {
private:
    int *data;
    int head, tail, length;
public:
    Queue(int length_input) {
        data = new int[length_input];
        length = length_input;
        head = 0;
        tail = -1;
    }
    ~Queue() {
        delete[] data;
    }
    void push(int element) {
        if (tail + 1 < length) {
            tail++;
            data[tail] = element;
        }
    }
    void output() {
        for (int i = head; i <= tail; i++) {
            cout << data[i] << " ";
        }
        cout << endl;
    }
    int front(){
        assert(head<=tail);//     ,           ,    
        return data[head];
    }
    void pop(){
        assert(head<=tail);
        head++;
    }

};
int main() {
    Queue queue(100);
    for (int i = 1; i <= 10; i++) {
        queue.push(i);
    }
    queue.output();
    cout<<queue.front()<<endl;
    queue.pop();
    queue.output();
    return 0;
}

좋은 웹페이지 즐겨찾기