建立鏈表的步驟如下:
使用鏈表的一般步驟如下:
下面是一個使用鏈表實現的簡單示例代碼:
#include <stdio.h>
#include <stdlib.h>
// 定義鏈表節點結構體
typedef struct Node {
int data; // 數據域
struct Node *next; // 指向下一個節點的指針
} Node;
// 創建鏈表節點
Node* createNode(int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) {
printf("內存分配失敗!\n");
exit(1);
}
newNode->data = data;
newNode->next = NULL;
return newNode;
}
// 插入節點到鏈表末尾
void insertNode(Node** head, int data) {
Node* newNode = createNode(data); // 創建新節點
if (*head == NULL) {
*head = newNode; // 若鏈表為空,則新節點為頭節點
} else {
Node* current = *head;
while (current->next != NULL) {
current = current->next; // 遍歷鏈表直到最后一個節點
}
current->next = newNode; // 將新節點插入到鏈表末尾
}
}
// 刪除指定值的節點
void deleteNode(Node** head, int data) {
Node* current = *head;
Node* previous = NULL;
while (current != NULL) {
if (current->data == data) {
if (previous == NULL) {
*head = current->next; // 如果要刪除的節點是頭節點
} else {
previous->next = current->next; // 跳過當前節點
}
free(current); // 釋放被刪除節點的內存
return;
}
previous = current;
current = current->next;
}
printf("要刪除的節點不存在!\n");
}
// 遍歷鏈表并輸出節點的值
void traverseList(Node* head) {
Node* current = head;
printf("鏈表節點的值:");
while (current != NULL) {
printf(" %d", current->data);
current = current->next;
}
printf("\n");
}
int main() {
Node* head = NULL; // 頭節點指針初始化為空
insertNode(&head, 1);
insertNode(&head, 2);
insertNode(&head, 3);
insertNode(&head, 4);
insertNode(&head, 5);
traverseList(head); // 輸出鏈表節點的值
deleteNode(&head, 3);
traverseList(head);
return 0;
}
以上是一個基本的鏈表操作示例,其中包括創建節點、插入節點、刪除節點和遍歷鏈表等操作。可以根據實際需求進行擴展和修改。