在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...