基於鍊錶的雙端佇列的類模板的C 實現

2021-08-09 10:15:50 字數 1555 閱讀 8543

/*

用鍊錶實現雙端佇列(儲存整型)

該佇列有以下幾個功能

1.createdeque輸入n個元素來初始化佇列

2.cleardeque清空整個佇列

3.f_inde(t e)在隊首插入元素e

4.f_outde()隊首元素出隊

5.l_inde(t e)在隊尾插入元素e

6.l_outde隊尾元素出隊

7.empty檢測佇列是否為空

8.length輸出並返回佇列長度

9.display列印從隊首到隊尾的每一元素

該佇列有以下成員:

1.fp隊首指標

2.lp隊尾指標

3.len佇列長度

by chczy

2017/10/16 21:34

*/#include#include#includeusing namespace std;

templatestruct node ;

templateclass linkdeque ;

node* createdeque(int n);//構造長度為n的佇列

void cleardeque();//清空佇列

node* f_inde(t e);//在隊首插入元素e

node* f_outde();//隊首元素出隊

node* l_inde(t e);//在隊尾插入元素e

node* l_outde();//隊尾元素出隊

bool empty();//檢測佇列是否為空

int length();//返回佇列長度

void display();//遍歷並列印佇列元素

private:

node* fp;//front pointer

node* lp;//rare pointer

int len;

};templatelinkdeque::linkdeque()

templatenode* linkdeque::createdeque(int n)

return fp;

}templatevoid linkdeque::cleardeque()

templatenode* linkdeque::f_inde(t e)

templatenode* linkdeque::f_outde()

templatenode* linkdeque::l_inde(t e)

templatenode* linkdeque::l_outde()

templatebool linkdeque::empty()

templateint linkdeque::length()//列印並返回佇列的長度

templatevoid linkdeque::display()

int i = 0;

node*p = fp;

cout << "佇列長為" << len << endl;

cout << "佇列中的元素為: ";

while (i != len)

cout << endl;

}

C語言基於鍊錶的佇列

寫了乙個基於鍊錶的佇列,非常簡單,只提供了初始化,判斷是否為空,銷毀,入隊和出隊操作,可以很容易的嵌入到工程中去。只提供了很少的注釋,好的 是可以自注釋的,另外如果對於c語言和佇列這個資料結構較熟悉的話,看懂我的 裡的一些指標操作是很容易的。在最下面提供了乙個測試程式,也可以看成使用指南,queue...

基於鍊錶的模板棧

首先建立乙個結構體模板,即乙個鍊錶節點,作為棧的單元。template class t struct linkedlist 然後新建乙個類,該類有兩個成員,分別為棧頂指標top和棧的大小size,top永遠指向鍊錶的頭部,由於棧只能操作棧頂元素,故新的節點可插入到鍊錶的頭部 該類實現了push po...

雙端鍊錶的java實現

雙端鍊錶,一 什麼是雙鏈表 鍊錶中儲存著對最後乙個鏈結點引用的鍊錶 二 從頭部進行插入 要對鍊錶進行判斷,如果為空則設定尾結點為新新增的結點 三 從尾部進行插入 如果鍊錶為空,則直接設定頭結點為新新增的結點,否則設定尾結點的後乙個結點為新新增結點 四 從頭部進行刪除 判斷頭部結點是否有下乙個結點,如...