#pragma once
#include#includeusing namespace std;
template//定義節點
class node
;//定義鍊錶
templateclass linklist
linklist() //無參
:_head(nullptr)
{} //拷貝構造
linklist(const linklist& l)
:_head(nullptr)
}} }
//賦值運算子過載
linklist& operator=(const linklist& l)
node* p = l._head;
node* temp = new node;
temp->data = p->data;
temp->next = nullptr;
_head = temp;
node* e = _head;
while (p->next != nullptr)
}} return *this;
} //頭插
void push_front(const t& value)
//頭刪
void pop_front()
//尾插
void push_back(const t& value)
else
p->next = node;
} }//尾刪
void pop_back()
//多個節點
else
delete p->next;
p->next = nullptr;
} }//刪除第n個節點
int erase(const size_t& pos)
assert(_head != nullptr);
size_t n = 1;
//node* p = _head;
//第乙個節點單獨處理
if (pos==1)
node* p = _head;
while (p->next != nullptr)
p = p->next;
} return 0;
} //返回節點個數
size_t node_num()const
return num;
} //返回第乙個節點的值
t& first_node()const
//返回最後乙個節點的值
t& last_node()const
//多個節點
else
return p->next->data;
} }//遍歷鍊錶
void print()
cout << endl;
} //鍊錶逆置
void reverse()
node* p1 = _head;
node* p2 = nullptr;
while (p1 != nullptr)
_head = p2;
} //析構函式
~linklist()
}}};
c 模板鍊錶實現
簡介 主要是利用模板實現鍊錶的操作。模板的使用,使得程式的開發量大大地減少。可以先定義乙個鍊錶linklist,之後可以定義自己的類了 例如 student類 使用時就可以這樣呼叫了 linklistl 下面便是鍊錶的實現 linklist.cpp templatestruct node templ...
C 模板類實現鍊錶
注意 鍊錶中要包含node的結構體,用來把節點放進去 只有出現node就要加,不然會報錯 有類模板的重新編譯記得清空再重新生成 清除鍊錶時使用的迴圈清空頭結點的思想需要記得 c語言中一樣迴圈呼叫清除0號元素也可以 debug和release編譯不同,一步一步執行時順序不一樣,不知道為啥了,不過不重要...
C 模板實現鍊錶佇列
佇列是一種十分常見的資料結構,具有先進先出的特點.佇列在處理訊息時,非常常用.本文利用c 模板,鍊錶來實現乙個簡單的佇列.解讀如下 1.queuelinklist標頭檔案.queuelinklist私有繼承於linklist,因為做為佇列中的核心鍊錶資料結構,我們只希望其具有尾插入,頭取出的方法.採...