C 中單鏈表

2021-08-13 23:59:39 字數 2716 閱讀 9484

鍊錶的含義

1) 由n個節點離散分配

2) 每個節點通過指標連線

3) 每乙個節點由乙個前驅節點和乙個後驅節點

4)首節點沒有前驅節點,尾節點沒有後驅節點

節點的構成

節點由兩部分構成

1、資料域,用來存放有效資料

2、指標域,用來存放下乙個節點

節點構造

首節點:存放第乙個有效資料的節點;

尾節點:存放最後乙個有效資料的節點;

頭節點:頭節點的資料型別與首節點的資料型別相同,並且頭節點是首節點前面的那個節點,並不存放有效資料;頭節點的存在只是為了方便鍊錶的操作。

頭指標:指向頭節點的指標;

尾指標:指向尾節點的指標;

main.cpp

#include

#include

"node.h"intmain()

node.cpp

//

// created by yang on 2017/12/13.

////鍊錶 中乙個頭指標 存放乙個位址 每個位址表示乙個節點

#include

"node.h"#include

#include

#include

pnode creat(inti ,...)

else

ptail = pnew; //把新申請的節點位址給尾節點,pnew 存放新的位址

ptail->data = tmp;

pnew =newnode();

}ptail->pnext =null;

deletepnew;

va_end(va_p);

std::cout << head << std::endl;

returnhead;

}voidprint(pnode head)

}pnode del(pnode phead,intnum)

if(pnow->data == num)

else

returnphead;

}pnode insert(pnode phead,intnum,intdata)

pnode pnow = phead;

while(pnow->pnext&&pnow->data != num)

if(num == pnow->data)

else

returnphead;

}pnode resver(pnode phead)

returnpnow;

}node.h

//

// created by yang on 2017/12/13.

//#ifndef

list_node_h

#define

list_node_h

typedef structnodenode,*pnode;

//定義了兩個新的資料型別 node ---> struct node pnode ----> struct node*

pnode creat(inti,...);

voidprint(pnode head);

pnode del(pnode phead,intnum);

pnode insert(pnode phead,intnum,intdata);

pnode resver(pnode phead);

classlist;

~list(){};

private:

intm_n;

};#endif

//list_node_h

cmakelists.txt
cmake_minimum_required(version 3.6)

project(list)

set(cmake_cxx_standard 11)

set(source_files main.cpp node.cpp node.h)

add_executable(list $)

C 中單鏈表的建立

鍊錶作為動態資料結構之一,對其掌握很有必要,鍊錶主要作用有兩個 一是用來代替陣列元素個數不確定的陣列,二是在資料庫管理中對磁碟進行儲存操作。鍊錶分為單鏈表和雙鏈表,單鏈表的末尾結點的指標賦值為0,而雙鏈表的頭部和末尾指標的結點均賦值為0。下面主要介紹單鏈表的一些操作,雙鏈表與其操作類似。對於單鏈表,...

go中單鏈表

package main import fmt type listnode struct type list struct func main listdata headnode insert 1,listdata,headnode insert 2,listdata,headnode insert...

C單鏈表操作

今天面試給 宇龍酷派 鄙視了。我想說,其實鍊錶反轉我會!單鏈表 初始化 建立 顯示 刪除 插入特定位置 刪除特定位置 反轉操作。include include include include typedef struct student node 初始化 node initnode head nex...