題目描述:若將乙個雙端佇列順序表表示在一維陣列v[m]中,兩個端點設為end1和end2,並組織成乙個迴圈佇列。如圖3.29所示,試寫出雙端佇列所用指標end1和end2的初始化條件及隊空和隊滿條件,並基於此結構的相應的插入(enqueue)和刪除(dequeue)演算法。
下面是博主自己碼的演算法,思路很簡單,程式也進行簡單的注釋了,相信大家不難理解。
#ifndef doublequeue_h_
#define doublequeue_h_
#include using namespace std;
templateclass doublequeue //inline函式,用來置空佇列,主要是為了後面的測試程式
};templatedoublequeue::doublequeue(int sz) //類的建構函式,用來初始化累的私有成員
templatedoublequeue::~doublequeue() //析構函式,用來刪除類物件,釋放記憶體
templatevoid doublequeue::enqueuetail(const t & x)
else }
templatevoid doublequeue::enqueuehead(const t & x)
else }
templatebool doublequeue::dequeuetail(t & x)
else }
templatebool doublequeue::dequeuehead(t & x)
else }
templatevoid doublequeue::initiaqueue() //用來初始化佇列,這主要是來測試上述演算法的,大家可以根據自己需要來選擇是否留下此函式
cout << "含有" << maxsize << "個節點的佇列初始化成功了!" << endl;
}#endif
// 簡單的演算法測試程式,打擊可以自己設計測試程式
#include "stdafx.h"
#include "doublequeue.h"
int _tmain(int argc, _tchar* argv)
這是博主自己寫的,肯定存在很多不足,忘大家多多指出,博主也一直在學習,想進步,還有大家不喜勿噴!謝謝
資料結構課後題目原始碼
習題描述如下 假設以陣列q m 存放迴圈佇列中的元素,同時設定乙個標誌tag,以tag 0和tag 1來區別在隊頭指標 front 和隊尾指標 rear 相等時,佇列狀態為 空 還是為 滿 試編寫與此結構相應的插入 enqueue 和刪除 dequeue 演算法。以下是博主自己碼的 不喜勿噴!ifn...
資料結構課後題目原始碼
題目描述 若矩陣am n中的某一元素a i j 是第i行中的最小值,同時又是第j列的最大值,則稱此元素為該矩陣的乙個鞍點。試編寫乙個演算法找出乙個矩陣中的鞍點,並返回他的下標 如果有的話 這是乙個找矩陣鞍點的演算法,所謂的矩陣的鞍點指的是若a i j 是第i行的最小值,且是第j列的最大值,這a i ...
資料結構原始碼 迷宮
include include include include include define stack init size 1000 define stack more 10 define overflow 2 define ok 1 define error 0 define true 1 de...