設計思想:myqueue.h中對模板類進行宣告和實現。首先定義結點的結構體,包含資料和指標域兩部分。佇列類定義中宣告和實現了元素入隊,出隊,列印隊首元素和佇列等方法。
注意:1)模板類的宣告和定義不能分開(即不能分別放在.h和.cpp檔案裡)。
2)宣告新節點時,如果宣告的節點是輔助操作的,可以不用new關鍵字,例如在析構函式中,直接用:node* temp;定義即可。如果宣告乙個新節點加入佇列,則要用new關鍵字,否則會報出nullptr異常。
#include "stdafx.h"
#include "myqueue.h"
int main()
; for (int i = 0; i < 5; i++)
myq.outprint();// 列印佇列
myq.top();//彈出隊首元素
myq.pop();//列印隊首元素
myq.top();
myq.getcount();//獲取佇列元素數量
myq.top();
myq.top();
myq.outprint();
myq.top();
myq.top();
myq.pop();
return 0;
}
myqueue.h
#include using namespace std;
templatestruct node;
templateclass myqueue;
template myqueue::myqueue()
template myqueue::~myqueue()
else
cout << "析構函式已完成"<< endl;
cout << "佇列元素個數為" << count << endl; }}
templateint myqueue::getcount()
if (count == 0)
else
node* node=new node;
temp->next=node;
node->data = e;
node->next = nullptr;
} count++;//佇列元素數量加1
}template void myqueue::outprint()
else
cout << endl; }}
template void myqueue::top()
else
}template void myqueue::pop()
else
}
執行結果: 乙個簡單的C 的鍊錶實現(使用類模板)
在ubuntu下編譯通過,未在windows下測試。linkedlist.h created on 2013 6 2 author btyh17mxy gmail.com ifndef linkedlist h define linkedlist h include ifndef null defi...
C 模板類實現鍊錶
注意 鍊錶中要包含node的結構體,用來把節點放進去 只有出現node就要加,不然會報錯 有類模板的重新編譯記得清空再重新生成 清除鍊錶時使用的迴圈清空頭結點的思想需要記得 c語言中一樣迴圈呼叫清除0號元素也可以 debug和release編譯不同,一步一步執行時順序不一樣,不知道為啥了,不過不重要...
乙個封裝的鍊錶模板類
由於工作中經常用到鍊錶,所以自己封裝了個簡單的鍊錶模板類。以便使用 鍊錶模板 pragma once define null 0 template class ptrlist ptrlist ptrlist p void addnode t t 增加結點 void removenode t t 移除...