下面是一個C語言建立單鏈表的完整代碼示例:
#include <stdio.h>
#include <stdlib.h>
// 定義鏈表節點結構
struct Node {
int data;
struct Node* next;
};
// 在鏈表末尾插入新節點
void insertAtEnd(struct Node** head, int newData) {
// 創建新節點
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = newData;
newNode->next = NULL;
// 如果鏈表為空,則將新節點作為頭節點
if (*head == NULL) {
*head = newNode;
return;
}
// 遍歷鏈表直到最后一個節點
struct Node* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
// 在鏈表末尾插入新節點
temp->next = newNode;
}
// 打印鏈表的元素
void printList(struct Node* node) {
while (node != NULL) {
printf("%d ", node->data);
node = node->next;
}
printf("\n");
}
int main() {
struct Node* head = NULL; // 初始化頭節點
// 在鏈表末尾插入元素
insertAtEnd(&head, 1);
insertAtEnd(&head, 2);
insertAtEnd(&head, 3);
insertAtEnd(&head, 4);
insertAtEnd(&head, 5);
// 打印鏈表元素
printList(head);
return 0;
}
這段代碼首先定義了一個鏈表節點結構Node
,其中包含數據域data
和指向下一個節點的指針next
。
然后,通過insertAtEnd
函數在鏈表末尾插入新節點。該函數首先創建一個新節點,并將新節點的數據域設置為newData
,將新節點的指針域next
設置為NULL
。
如果鏈表為空,則將新節點作為頭節點。否則,遍歷鏈表直到最后一個節點,然后將新節點插入到最后一個節點的next
指針。
最后,通過printList
函數打印鏈表的元素。該函數遍歷鏈表,并依次打印每個節點的數據域。