以下的c++類linklist實現了線性鍊錶的一般操作。可以直接在其他的程式中直接建立它的物件,其中線性表中的資料在此為整型,具體應用的時候可以適當的修改,並可以在此基礎上繼續封裝特定的功能。
標頭檔案:linklist.h
typedef struct lnode lnode, *plinklist;
class linklist ;
cpp檔案:linklist.cpp
#include
#include "linklist.h"
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;}*/
一般線性鍊錶類的C 實現
以下的c 類linklist實現了線性鍊錶的一般操作。可以直接在其他的程式中直接建立它的物件,其中線性表中的資料在此為整型,具體應用的時候可以適當的修改,並可以在此基礎上繼續封裝特定的功能。標頭檔案 linklist.h typedef struct lnode lnode,plinklist cl...
一般線性鍊錶類的C 實現
以下的c 類linklist實現了線性鍊錶的一般操作。可以直接在其他的程式中直接建立它的物件,其中線性表中的資料在此為整型,具體應用的時候可以適當的修改,並可以在此基礎上繼續封裝特定的功能。標頭檔案 linklist.h typedef struct lnode lnode,plinklist cl...
C語言實現一般線性表的鏈式儲存
c語言實現一般線性表的順序儲存,以下是在vs2013編譯通過的,歡迎討論。有關資料結構的概念可看我的另一篇文章 ifndef linklist h define linklist h typedef void linklist typedef struct tag linklistnode link...