這是乙個環形的佇列,為了邏輯簡單,隊首是乙個空位元組。
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實現
資料結構是演算法實現的基礎,演算法總是要依賴於某種資料結構來實現的。往往是在發展一種演算法的時候,構建了適合於這種演算法的資料結構。一種資料結構如果脫離了演算法,也就沒有存在的價值了。演算法的作用 解決任何乙個實際問題,都不可避免地涉及到演算法的問題,通過一定的演算法,得到乙個最優 或較優 的方案。...