c 實現單鏈表的操作

2021-07-11 23:08:03 字數 1879 閱讀 9453

#include

using namespace std;

#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()

//~node();

private:

int num;

node *next;

};class linklist//鍊錶類

linklist(int n)

void addatend(int n); //資料和指標分開操作

void addatend(node *p);

void visitallnode();

void insert(node *p, int num);

void deletenum(int num);

private:

node *head;

};void linklist::addatend(int n)//若head=null就是採用尾插法建立單鏈表,也可以採用頭插法。

else

p->setnext(new node(n));//表尾插入元素值。}}

void linklist::addatend(node *p) //表尾設定指標。比c看起來複雜繁瑣些,

//這就是面相對像程式設計的思想精髓。但複雜問題這種思想的好處就體現出來了

else

pn->setnext(p);}}

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

else

cout << p->getnum() << endl;}}

void linklist::insert(node *p, int num)

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

if (pn->getnum() == num&&pn == head)//如果是頭結點

else if (pn->getnum()==num)

else

}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->insert(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 << "你輸入錯誤,請重新輸入!" << endl;

C 實現單鏈表的操作

1.定義 單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。2.示例 singlylinkedlist.h def...

單鏈表基礎操作C 實現

最近在複習資料結構,就把單鏈表的基礎操作過了一篇 node.h標頭檔案 templatestruct node node t nval 單鏈錶類檔案 include include node.h include using namespace std templateclass singlelink...

C 實現單鏈表的基本操作

結點類 關鍵處在c語言中用指標來指向下乙個節點,c 是物件導向的,用節點類的乙個屬性 next屬性 來指向下乙個節點物件 public class linknode set private linknodenext public linknodenext set endregion public l...