原創 C 利用鍊錶模板類實現乙個簡易佇列

2021-08-11 08:35:03 字數 1427 閱讀 4940

設計思想: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 移除...