C 實現鍊錶(模板)

2021-10-03 07:23:18 字數 1609 閱讀 8600

#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,因為做為佇列中的核心鍊錶資料結構,我們只希望其具有尾插入,頭取出的方法.採...