C 實現 簡單 單鏈表

2021-08-08 21:20:12 字數 2039 閱讀 9260

**:

我們首先建立乙個

標頭檔案,宣告乙個單鏈表結構:

#include "list.h"

[cpp]

view plain

copy

//建立乙個單鏈表結構,包含一些常見的操作

#ifndef _list_h_

#define _list_h_

#include 

struct

node;  

node* createlists(); //建立乙個空表,並返回表頭

void

deletelists(node* head); 

//刪除表頭為head的該鍊錶

bool

islast(node* p);  

node* find(int

x, node* head);  

node* findprevious(int

x, node* head);  

void

delete(

intx, node* head);  

void

insert(node* p, 

intx); 

//在節點p後面插入x

void

outputlists(node* head); 

//輸出鍊錶中所有元素的值

#endif    

然後在檔案裡實現標頭檔案中的鍊錶操作:

#include "list.cpp"

[cpp]

view plain

copy

#include "list.h"

node* createlists()  

void

deletelists(node* head)  

}  bool

islast(node* p)  

node* find(int

x, node* head)  

node* findprevious(int

x, node* head)  

void

delete(

intx, node* head)  

}  void

insert(node* p, 

intx)  

void

outputlists(node* head)  

std::cout

最後,我們用一段

main

**驗證一下正確性:

[cpp]

view plain

copy

#include 

#include 

#include "list.h"

using

namespace

std;  

intmain()  

;  node *head = createlists();  

node *p = head;  

for(

inti=0;i<8;i++)  

cout<

;  outputlists(head);  

if(islast(p))  

cout<

else

cout<

if(find(15,head))  

cout<

;  else

cout<

;  cout<

cout<

;  delete(8, head);  

if(find(8,head))  

cout<

;  else

cout<

;  deletelists(head);   

if(head->next)  

cout<

;  else

cout<

;  return

0;  

}  

結果如下:

簡單單鏈表實現

這裡主要是實現了乙個單鏈表,不帶頭節點的單鏈表,使用了二級指標。如果是帶頭節點的鍊錶,其只要一級指標就可以了。接下來是乙個單鏈表翻轉的函式。typedef struct listnode listnode void reverselist listnode l pl l while pl null ...

簡單單鏈表

定義乙個單鏈表 include includetypedef struct node linklist 建立乙個長度為n的單鏈表 linklist creat list int n end next null return head 在單鏈表n的位置插入乙個節點 void link insert l...

簡單單鏈表操作 list

鍊錶 定義鍊錶是一種資料結構,通過指標來作為節點,將其連線起來,節點動態生成,鍊錶的儲存方式為動態,使用鍊錶結構可以克服陣列鍊錶需要預先知道資料大小的缺點,鍊錶結構可以充分利用計算機記憶體空間,實現靈活的記憶體動態管理。反之,即失去了陣列所擁有的優點。結構鍊錶有頭指標,首指標,尾指標。頭指標指向首指...