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