乙個鍊錶類的實現

2021-05-26 23:57:41 字數 2462 閱讀 2905

乙個鍊錶類的實現

賦值到vc上即可執行除錯。

typedef struct lnode

lnode, *plinklist;

//類的宣告

class linklist ;

//類的實現

linklist::linklist()

linklist::~linklist()

}//初始化,分配乙個頭節點。

bool linklist::initlist()

m_plist->next = null;

return true;

}//銷毀鍊錶。

bool linklist::destroylist()

delete m_plist;

return true;

}//判斷鍊錶是否為空。若為空,返回true,否則返回false。

bool linklist::isempty()

return false;

}//返回鍊錶的中當前節點數。

int linklist::getlength()

//將鍊錶清空,釋放當前所有節點。

bool linklist::clearlist()

lnode *ptemp = null;

while (m_plist->next != null)

m_listlength = 0;

return true;

}//將position指定的節點內的資料設定為newdata。

//第乙個有效節點的position為1。

bool linklist::setnodedata(int position, int newdata)

ptemp->data = newdata;

return true;

}//得到指定位置節點的資料。

//節點索引從1到listlength。

bool linklist::getnodedata(int position, int &data)

data = ptemp->data;

return true;

}//在鍊錶中插入乙個節點。

//插入的位置由beforewhich指定,新節點插入在beforewhich之前。

//beforewhich的取值在1到listlength+1之間。

bool linklist::insertnode(int beforewhich, int data)

if (!(getnode(beforewhich - 1, &ptemp)))

lnode *newnode = new lnode;

newnode->data = data;

newnode->next = ptemp->next;

ptemp->next = newnode;

m_listlength++;

return true;

}//刪除乙個指定的節點。

//節點位置由position指定。

//positon的值從1到listlength。

//若煉表為空或指定的節點不存在則返回false。

bool linklist::deletenode(int position)

lnode *ptemp = null;

if (!(getnode(position - 1, &ptemp)))

lnode *pdel = null;

pdel = ptemp->next;

ptemp->next = pdel->next;

delete pdel;

m_listlength--;

return true;

}//得到指定位置節點的指標。

bool linklist::getnode(int position, lnode **node)

if (curpos != position)

*node = ptemp;

return true;

}//定位與指定資料相等的資料節點。

//如果在當前鍊錶中已經存在該資料則返回該資料節點的索引號。

//若不存在這樣的節點則返回0。

//節點索引從0開始到listlength。

int linklist::locateelem(int elem)

if (ptemp == null)

return curindex;}/*

int main()

if (l.setnodedata(3, 50)) else

for (i = 1; i <= l.getlength(); i++)

if (l.deletenode(4)) else

for (i = 1; i <= l.getlength(); i++)

cout << l.locateelem(50) << endl;

return 0;}*/

乙個簡單的鍊錶類

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

python實現乙個鍊錶

class node object 創造結點類 def init self,val,next none self.val val self.next next class linklist object 鍊錶的操作 def init self self.head node none 鍊錶的開頭,創造...

乙個雙向鍊錶的實現

本來是想改改算了,最後變成全部重寫。既然都是自己寫的,也算是原創吧!struct node node intval,node nextnode,node priornode data val next nextnode prior priornode node headnode new node n...