本文是單鏈表的c語言實現方法,包括單鏈表的建立、插入、刪除、修改、查詢等基本操作。
鍊錶的底層是通過指標將乙個個零散的記憶體塊連線起來,鍊錶的每個記憶體塊稱為結點。
單鏈表結點結構體
//結點結構體
typedef
struct node
node;
建立結點//建立結點
node*
create_node
(int data)
建立單鏈表
步驟:首先需要建立乙個頭結點,然後頭結點指向乙個新結點,新的結點又指向乙個新結點,我們可以通過迴圈來建立乙個指定長度的單鏈表,如下所示:
//建立長度為num的單鏈表
node*
create_list
(int num)
return head;
}
獲取鍊錶的長度//鍊錶長度
size_t list_len
(node* head)
return len;
}
插入結點
插入步驟,如下圖:
//在鍊錶指定位置插入乙個結點 返回頭結點
node*
list_insert
(node* head,
int index,
int data)
else
node* node =
create_node
(data)
; node->next = tmp->next;
tmp->next = node;
}return head;
}
刪除結點
刪除步驟,如下圖:
//刪除指定位置的乙個結點 返回頭結點
node*
list_delete
(node* head,
int index)
else
node* tmp = node->next;
node->next = tmp->next;
free
(tmp)
;//釋放刪除結點的記憶體
tmp =
null;}
return head;
}
查詢鍊錶中指定的資料node*
list_find
(node* head,
int data)
return
null
;//鍊錶中不存在該資料,返回null
}
修改鍊錶中指定位置結點的值bool modify_index
(node* head,
int index,
int data)
node->data = data;
return true;
}
修改鍊錶中指定資料的值bool modify_data
(node* head,
int data,
int val)
return false;
}
完整**
鍊錶測試**請前往:
#include
#include
#include
#include
//結點結構體
typedef
struct node
node;
//建立結點
node*
create_node
(int data)
//建立長度為num的鍊錶
node*
create_list
(int num)
return head;
}//顯示鍊錶的資料
void
show_list
(node* head)
printf
("\n");
}//獲取鍊錶長度
size_t list_len
(node* head)
return len;
}//在鍊錶指定位置插入乙個結點 返回頭結點
node*
list_insert
(node* head,
int index,
int data)
else
node* node =
create_node
(data)
; node->next = tmp->next;
tmp->next = node;
}return head;
}//刪除指定位置的乙個結點 返回頭結點
node*
list_delete
(node* head,
int index)
else
node* tmp = node->next;
node->next = tmp->next;
free
(tmp)
;//釋放刪除結點的記憶體
tmp =
null;}
return head;
}//查詢鍊錶中指定的資料
node*
list_find
(node* head,
int data)
return
null
;//鍊錶中不存在該資料,返回null
}//修改鍊錶中指定位置結點的值
bool modify_index
(node* head,
int index,
int data)
node->data = data;
return true;
}//修改鍊錶中指定資料的值
bool modify_data
(node* head,
int data,
int val)
return false;
}
更多鍊錶相關**請前往: 遍歷鍊錶(單鏈表的基本操作)
建立乙個公升序鍊錶並遍歷輸出。輸入描述 輸入的每個案例中第一行包括1個整數 n 1 n 1000 接下來的一行包括n個整數。輸出描述 可能有多組測試資料,對於每組資料,將n個整數建立公升序鍊錶,之後遍歷鍊錶並輸出。輸入例子 4 3 5 7 9 輸出例子 3 5 7 9 ac code include...
328奇偶鍊錶(單鏈表基本操作)
1 題目描述 給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。說明 2 示例 輸入 1 2 3...
鍊錶 單鏈表的基本運算
實現單鏈表的基本運算 初始化 插入 刪除 求表的長度 判空 釋放。1 初始化單鏈表l,輸出l next的值 2 依次採用尾插法插入元素 輸入分兩行資料,第一行是尾插法需要插入的字元資料的個數,第二行是具體插入的字元資料。3 輸出單鏈表l 4 輸出單鏈表l的長度 5 判斷單鏈表l是否為空 6 輸出單鏈...