程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 操作-求C++語言用數組實現一個隊列的數據結構的完整代碼

操作-求C++語言用數組實現一個隊列的數據結構的完整代碼

編輯:編程綜合問答
求C++語言用數組實現一個隊列的數據結構的完整代碼

提示:定義一個數組,用兩個指針表示隊列的首尾位置,編寫兩個函數代表出隊入隊操作。當隊列長度超過數組長度時,提示隊列超長,當隊列空時,提示隊列為空。主程序實現對隊列的調用,

最佳回答:


 #include <iostream>
using namespace std;

#define ARRSIZE 5

class Queue
{
private:
    int * arr;
    int * start;
    int * end;
    int length;
public:
    Queue()
    {
        arr = new int[ARRSIZE];
        start = end = arr;
        length = 0;
    }
    void enqueue(int x)
    {
        if (length == ARRSIZE)
        {
            cout << "full" << endl;
            throw "error";
        }
        else
        {
            *start = x;
            *start--;
            length++;
            if (start < arr) start = &arr[ARRSIZE - 1];
        }
    }
    int dequeue()
    {
        if (!length)
        {
            cout << "empty" << endl;
            throw "error";
        }
        else
        {
            int result = *end;
            *end--;
            length--;
            if (end < arr) end = &arr[ARRSIZE - 1];
            return result;
        }

    }
};

int main(int argc, _TCHAR* argv[])
{
    Queue q = Queue();
    q.enqueue(1);
    cout << q.dequeue() << endl;
    q.enqueue(2);
    q.enqueue(3);
    cout << q.dequeue() << endl;
    cout << q.dequeue() << endl;
    q.enqueue(4);
    q.enqueue(5);
    q.enqueue(6);
    cout << q.dequeue() << endl;
    cout << q.dequeue() << endl;
    q.enqueue(7);
    cout << q.dequeue() << endl;
    cout << q.dequeue() << endl;
    q.enqueue(8);
    cout << q.dequeue() << endl;
    return 0;
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved