資料結構與演算法c 實現(7)之動態陣列構成佇列

2021-09-26 23:18:08 字數 1642 閱讀 8857

這是乙個環形的佇列,為了邏輯簡單,隊首是乙個空位元組。

templatevoid myqueue::push(const t& item)//(rear + 1) % capacity這是乙個極為巧妙地操作

else//回環結構

delete queue;//將原來的陣列釋放掉

front = 0;//更新成員變數

rear = capacity - 1;

capacity = capacity * 2;

queue = temp;

} rear = (rear + 1) % capacity;

queue[rear] = item;

}templatet& myqueue::getfront()

return queue[(front + 1) % capacity];

}templatet& myqueue::getrear()

return queue[rear];

}templatevoid myqueue::pop()

front = (front + 1) % capacity;//隊首是乙個空位元組

queue[front].~t();

}templatemyqueue::~myqueue()

templateconst myqueue& myqueue::operator= (const myqueue& oldqueue)

#endif // !_myqueue_h

#include #include "myqueue.h"

using namespace std;

int main()

cout << q.getfront() << endl;

cout << q.getrear() << endl;

for (int i = 0; i < 2; ++i)

cout << q.getfront() << endl;

cout << q.getrear() << endl;

for (int i = 0; i < 29; ++i)

cout << q.getfront() << endl;

cout << q.getrear() << endl;

myqueuea(q);

myqueueb;

b = a;

return 0;

}

結果:

032

3228

資料結構與演算法之模擬演算法 C 實現

模擬演算法 模擬整個過程,通過改變量學中模型的各種引數,進而觀察變更這些引數所引起過程狀態的變化。演算法思路 使用隨機函式來模擬自然界中發生的不可 情況。srand 和 rand 函式生成隨機數 模擬演算法也就是將整個過程完完整整的走一遍,題目怎麼敘述的,程式就怎麼執行。例項一 猜數字計算機隨機生成...

資料結構與演算法 C 實現動態變長陣列

乙個簡單至極的變長陣列,僅僅是在原生陣列中新增了自動變長功能 參考stl中vector的實現,每次下標越界,就將陣列容量擴大一倍。申請新的空間,是原長度的二倍 從原記憶體複製所有內容到新記憶體 釋放原記憶體 author trialley date 2019 7 26 licence mit pra...

資料結構與演算法之遞推演算法 C 與PHP實現

資料結構是演算法實現的基礎,演算法總是要依賴於某種資料結構來實現的。往往是在發展一種演算法的時候,構建了適合於這種演算法的資料結構。一種資料結構如果脫離了演算法,也就沒有存在的價值了。演算法的作用 解決任何乙個實際問題,都不可避免地涉及到演算法的問題,通過一定的演算法,得到乙個最優 或較優 的方案。...