C 鍊錶實現

2022-07-22 06:33:16 字數 3294 閱讀 8176

單個節點標頭檔案

1

2#ifndef node_h

3#define node_h

45 #include6

using

namespace

std;78

class

node;

16//

得到節點資料

17int getdata();

18//

鏈結下一節點

19void setnext(node *r);

20//

得到節點的下一節點

21 node *getnext() ;

22//

列印資料

23void printdata();

24private:25

int *data;

26 node *next;

27};

2829

node::node()

3334 node::~node()

3839

#endif

煉表頭檔案

#ifndef linklist_h

#define linklist_h#include

#include

"node.h

"using

namespace

std;

class

linklist

//得到元素的位置

int getelementindex(int &elem);

//得到鍊錶指定位置的元素

bool getlistelement(int index,int *elem);

//鍊錶插入

bool listinsert(int index,int &elem);

//鍊錶刪除

bool listdelete(int index,int *elem);

//列印鍊錶

void

listprint();

private

: node *list;

intlength;

};linklist::linklist()

linklist::~linklist()

delete

list;

list=null;

}bool

linklist::isempty()

else

}bool

linklist::clearlist()

node *nownode=list->getnext();

node *nextnode=list->getnext();

while(nextnode->getnext()!=null)

delete

nownode;

length=0

; list->setnext(null);

return

true;}

int linklist::getelementindex(int &elem)

}return -1;}

bool linklist::getlistelement(int index,int *elem)

node *tempnode=list;

for(int i=0;i<=index;++i)

*elem=tempnode->getdata();

return

true;}

bool linklist::listinsert(int index,int &elem)

node *temppronode=list;

for(int i=0;ii)

node *nownode=new

node();

if(nownode==null)

node *temp=temppronode->getnext();

temppronode->setnext(nownode);

nownode->setnext(temp);

nownode->setdata(elem);

++length;

return

true;}

bool linklist::listdelete(int index,int *elem)

node *temppronode=list;

for(int i=0;ii)

node *tempnode=temppronode->getnext();

temppronode->setnext(tempnode->getnext());

*elem=tempnode->getdata();

delete

tempnode;

--length;

return

true;}

void

linklist::listprint()

node *tempnode=list->getnext();

while(tempnode->getnext()!=null)

tempnode->printdata();

cout

<"

end"

<}#endif

呼叫**

#include#include

#include

"linklist.h

"using

namespace

std;

intmain();

linklist *linklist=new

linklist();

for(int i=0;i<=5;++i)

linklist->listprint();

cout

<<"

getelementindex:

"intgetdata;

linklist->getlistelement(2,&getdata);

cout

<<"

getlistelement:

"intdeletedata;

linklist->listdelete(0,&deletedata);

cout

<<"

delete data:

"linklist->listprint();

delete

linklist;

linklist=null;

system(

"pause");

return0;

}

鍊錶C 實現

node.h 第乙個檔案 ifndef node h define node h define true 1 define false 0 define ok 1 define error 0 define null 0 define flag 1 class node endif node h l...

鍊錶c 實現

昨天把鍊錶實現 寫到 寫鍊錶收穫 裡了,今天看了看居然沒有,不知道是沒儲存還是怎麼了,沒辦法,今天就把自己的 再粘一遍吧 對了,是用vs2013編輯的 slnode.cpp include struct slnode slnode const int item,slnode nextnode nul...

C 鍊錶實現

include include include using namespace std typedef int datatype typedef struct node linknode 鍊錶初始化 初始化鍊錶頭部指標需要用二級指標或者一級指標的引用 void linklist init linkn...