/*
用鍊錶實現雙端佇列(儲存整型)
該佇列有以下幾個功能
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實現
雙端鍊錶,一 什麼是雙鏈表 鍊錶中儲存著對最後乙個鏈結點引用的鍊錶 二 從頭部進行插入 要對鍊錶進行判斷,如果為空則設定尾結點為新新增的結點 三 從尾部進行插入 如果鍊錶為空,則直接設定頭結點為新新增的結點,否則設定尾結點的後乙個結點為新新增結點 四 從頭部進行刪除 判斷頭部結點是否有下乙個結點,如...