乙個簡單的C 的鍊錶實現(使用類模板)

2021-06-14 16:58:54 字數 2675 閱讀 2048

在ubuntu下編譯通過,未在windows下測試。

**:

/*

* linkedlist.h

* * created on: 2013-6-2

* author: [email protected]

*/#ifndef linkedlist_h_

#define linkedlist_h_

#include #ifndef null

#define null 0

#endif

//表示鍊錶節點的結構體

templatestruct node ;

templateclass linkedlist ;

templatelinkedlist::linkedlist()

templatelinkedlist::~linkedlist()

/* * 在鍊錶的末尾新增乙個值

* @param value 要新增進鍊表的值

* @return 成功返回真,否則返回假

*/templatebool linkedlist::add(n value)

node*temp = this->head;

while (temp->next != null)

node*node = new node();

node->value = value;

node->next = null;

temp->next = node;

this->length++;

return true;

} catch (...)

return false;}/*

* 移除鍊錶中指定位置的節點

* @param index 要移除的節點的位置

* @return 如果成功返回真,否則返回假

*/templatebool linkedlist::remove(int index)

node*atemp = this->head;

node*ptemp = null;

int count = 0;

while (count <= this->length)

if (count == index)

ptemp = atemp;

atemp = atemp->next;

count++;

} return true;}/*

* 在指定的位置新增乙個值。如果index小於0則新增在首位,如果index大於鍊錶長度則新增在尾部

* @param index 要新增的位置

* @param value 要新增的值

* @return 成功返回真否則返回假

*/templatebool linkedlist::add(int index, n value) else if (index == this->length || index > this->length) else

} catch (...)

return false;}/*

* 獲取鍊錶的長度

* @return 返回鍊錶的長度

*/templateint linkedlist::getlength()

/* * 獲取頭指標

* @return

*/templatenode* linkedlist::gethead()

/* * 獲取指定位置節點

* @param index 鍊錶位置

* @return

*/templatenode* linkedlist::__getnode(int index) else

count++;

} }return null;}/*

* 獲取指向指定位置節點的值的指標

* @param index 要獲取的節點位置

* @return 節點值

*/templaten * linkedlist::getvalue(int index)

node* temp = this->__getnode(index);

if (temp != null)

return null;}/*

* 獲取指定值在鍊錶中的位置

* @param value 要找的值

* @return 如果找到返回位置,沒找到返回-1

*/templateint linkedlist::getindex(n value)

node*temp = this->head;

int count = 0;

while (count <= this->length)

temp = temp->next;

count++;

} return -1;

}#endif /* linkedlist_h_ */

測試**:

/*

* linkedlist_test.cpp

* * created on: 2013-6-2

* author: [email protected]

*/#include "linkedlist.h"

#include int testlinkedlist()

return 0;

}

乙個簡單的鍊錶類

include include using namespace std class linklist private node head public 預設建構函式 linklist int n 10 析構函式 linklist while ptr stack.empty 列印鍊錶 void dis...

乙個鍊錶類的實現

乙個鍊錶類的實現 賦值到vc上即可執行除錯。typedef struct lnode lnode,plinklist 類的宣告 class linklist 類的實現 linklist linklist linklist linklist 初始化,分配乙個頭節點。bool linklist init...

乙個簡單的雙向鍊錶(C 實現)

直接上 親測有用。ifndef dlink h define dlink h phead index0 index1 index2 phead phead index0 index1 index2 phead phead 不儲存資料。index是從0開始的。count index 1 templat...