2 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
我的想法是,既然是用C++去解決這個(gè)問(wèn)題,那么就用C++的封裝方式去解決。在C++中,一切皆對(duì)象,那么就定義一個(gè)類(lèi)queue,具體的實(shí)現(xiàn)可以參考STL的queue實(shí)現(xiàn)。
如果是想用C的方式去解決,那么就用鏈表方式
struct _Node
{
char* data; struct _Node* priv; struct _Node* next;
};
data在程序執(zhí)行時(shí),創(chuàng)建有malloc完成,刪除有free完成。
我的理解是C和C++不是一樣的語(yǔ)言。

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
template<T>
class QUEUE
{
private:
T* data;
int front;
int rear;
int size;
public:
QUEUE() {}
QUEUE(int sz)
{
data = new T(sizeof(T) * sz);
size = sz;
/*your code below*/
}
~QUEUE()
{
delete data;
data = nullptr;
}
};
題主如果是練手,可以像上面這樣,自己重載一個(gè)構(gòu)造函數(shù)就行了。如果是為了項(xiàng)目要用,直接用std::queue。另外一般的FIFO隊(duì)列,用鏈表實(shí)現(xiàn)更方便,而且易于增刪元素。這種用數(shù)組實(shí)現(xiàn)的一般用于循環(huán)隊(duì)列。
添加回答
舉報(bào)