c 鍊錶類的實現

2021-07-09 07:24:50 字數 1813 閱讀 8031

#include

#define null 0

class node //節點類

node(int n)

node(int n, node *p)

void setnum(int n)

void setnext(node *p)

int getnum()

node *getnext()

private:

int num;

node *next;};

class linklist //鍊錶類

linklist(int n)

void addatend(int n);

void addatend(node *p);

void visitallnode();

void addbeforenum(node *p, int num); //在節點值為num之前新增新節點p

void deletenum(int num);//刪除值為num的節點

private:

node *head;};

void linklist::addatend(int n)  //往煉表尾新增節點

else

//用p來指向最後乙個節點

p->setnext(new node(n));//插入節點}}

void linklist::addatend(node *p) //往煉表尾新增節點

else

//用pn來指向最後乙個節點

pn->setnext(p);//插入節點}}

void linklist::visitallnode()//遍歷鍊錶

coutvoid linklist::addbeforenum(node *p, int num) //在節點值為num之前新增新節點p

while(pn->getnext() != null && pn->getnum() != num)

// 查詢指向節點值為num的節點

if(pn==head && pn->getnum() == num)//找到節點,且為頭指標

else if(pn->getnum() ==  num) //找到此節點,注:follow指向其上一節點

else //沒有找到節點,pn指向最後乙個節點,將新節點插入鍊錶尾}

void linklist::deletenum(int num) //刪除節點

else

if(p->getnum() == num)}}

void main()

else

pl->visitallnode();

break;

case '3':

cout<<"請輸入插入的節點值:";

cin>>num;

cout<<"請輸入要插入到哪個節點前,以節點的值表示:";

cin>>n;

pl->addbeforenum(new node(num), n);

pl->visitallnode();

break;

case '4':

cout<<"請輸入要刪除的節點的值:";

cin>>num;

pl->deletenum(num);

pl->visitallnode();

break;

case '5':

pl->visitallnode();

break;

default:

cout<<"你輸入錯誤,請重新輸入!"<}

if(option == '0' )

break;}

}

c 鍊錶類的實現

void initlist 初始化 void creatlist elemtype a,int n 建立 void destroylist 銷毀 bool listempty 是否為空 intlistlength 長度 bool displaylist 全部輸出 bool getelem elemt...

鍊錶的C 實現 (使用類實現

include include using namespace std class node class link link void initiate 初始化 void deleteall 刪除所有節點 void headcreate int n 頭插法建表 void trailcreate in...

C 鍊錶類的基本實現

鍊錶是學習資料結構最基本,最先學習的一種資料結構,熟練掌握鍊錶是必須的!實現 用類封裝乙個通用鍊錶,實現增,刪,修,查等操作。以儲存int為例,並具有自動排序,反轉功能!include include include using namespace std class list notelist p...