c語言 單鏈表

2021-08-02 05:35:17 字數 3237 閱讀 1769

[cpp]view plain

copy

#include

#include

typedef

intitem;

//定義資料項型別

typedef

struct

node * pnode;

//定義節點指標

//節點的定義

typedef

struct

node  

node,* slist;  

/*int sl_creat(slist *p_list,int size)

引數p_list:指向乙個鍊錶指標,此處傳入表頭位址

size:要建立的鍊錶分配的資料元素空間個數,不包含頭節點

返回值若成功返回1,否則返回0。

功能該函式的功能是建立乙個大小為size的鍊錶並把鍊錶的頭指標賦給p_lsit所指的鍊錶指標。

*/int

sl_creat(slist *p_list,

intsize)  

return

1;  

}  /*

int sl_insert(slist list,int pos,item item)

引數list:要插入資料的單鏈表

int:指定要插入元素的位置,從1開始計數

item:要插入的資料項

返回值若成功返回1,否則返回-1。

功能該函式的功能是在鍊錶list的pos位置插入新元素,其值為item。

*/int

sl_insert(slist list,

intpos,item item)  

if(p==null || i > pos-1)  

return

-1;  

q = (node *)malloc(sizeof

(node));

//未插入節點分配記憶體

if(q!=null)

//若記憶體分配成功,將節點插入指定位置

else

}  /*int sl_getitem(slist list,int pos,item *p_item)

引數list:要獲取資料項所在的單鏈表

int:指定要獲取元素在單鏈表中的位置

p_item:指向要接收資料項的變數

返回值若成功返回1,否則返回-1。

功能該函式的功能是獲取在鍊錶list的pos位置的元素的資料項,其值賦給p_item所指的變數。

*/int

sl_getitem(slist list,

intpos,item *p_item)  

if((p==null)||(i>pos))  

*p_item = p->item;  

return

1;  

}  /*

int sl_delete(slist list,int pos,item * p_item)

引數list:要刪除元素所在的單鏈表

int:指定要刪除元素在單鏈表中的位置

p_item:指向接收刪除元素的資料項的變數

返回值若成功返回1,否則返回-1。

功能該函式的功能是刪除在鍊錶list的pos位置的元素,其值賦給p_item所指的變數。

*/int

sl_delete(slist list,

intpos,item * p_item)  

if(p->next==null || i > pos-1)  

return

-1;  

q = p->next;  

p->next = q->next;  

if(p_item != null)  

*p_item = q->item;  

free(q);  

return

1;  

}  /*

int sl_setitem(slist list,int pos,item item)

引數list:要設定元素所在的單鏈表

int:指定要設定元素在單鏈表中的位置

p_item:要設定元素的資料項的值

返回值若成功返回1,否則返回-1。

功能該函式的功能是將鍊錶list的pos位置的元素的資料項設定為item。

*/int

sl_setitem(slist list,

intpos,item item)  

if(p==null || i > pos)  

return

-1;  

p->item = item;  

return

1;  

}  /*

int sl_find(slist list,int *pos,item item)

引數list:要查詢元素所在的單鏈表

int:指向要儲存的查得的元素的位置的變數

p_item:要查詢元素的資料項的值

返回值若成功返回1,否則返回-1。

功能該函式的功能是在鍊錶list中查詢資料項為item的元素,將其位置值賦給pos所指的變數。

*/int

sl_find(slist list,

int*pos,item item)  

}  return

-1;    

}  /*

int sl_empty(slist list)

引數list:要判斷的單鏈表

返回值若為空則返回1,否則返回 0。

功能該函式的功能是判斷鍊錶list是否為空表。

*/int

sl_empty(slist list)  

/*int sl_size(slist list)

引數list:要查詢的單鏈表

返回值返回包含節點的個數。

功能該函式的功能是返回鍊錶list中節點的個數,包含頭節點。

*/int

sl_size(slist list)  

return

i;  

}  /*

int sl_clear(slist *p_list)

引數p_list:指向要清除的單鏈表

返回值成功返回值為1。

功能該函式的功能是清除鍊錶的所有節點,包含頭節點。

*/int

sl_clear(slist *p_list)  

*p_list = null;//將所指的鍊錶指標設為null

return

1;  

}  

C語言單鏈表

include include include define error 0 typedef struct lnode lnode,linklist linklist initlist linklist l node next null l node return l int listlength ...

c語言 單鏈表

單鏈表,顧名思義是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。我們在這裡使用c語言實現 h 檔案 pragma on...

C語言單鏈表

學過線性表中的順序表的都知道,順序表裡的資料在物理記憶體上是相鄰的,所以當我們在順序表中想要訪問下乙個元素時可以直接去訪問,就像陣列一樣。但是單鏈表卻不同,單鏈表的資料儲存的位置是動態分配的,也就是說單鏈表的儲存在物理記憶體上不是相鄰的,所以我們就只能通過指標這種方式來把單鏈表串起來,通過指標來訪問...