在C語言中,創(chuàng)建一個鏈表需要定義一個結(jié)構(gòu)體來表示鏈表的節(jié)點,然后定義一些函數(shù)來對鏈表進行操作。
以下是一個簡單的例子來創(chuàng)建一個鏈表:
#include <stdio.h>
#include <stdlib.h>
// 定義鏈表節(jié)點的結(jié)構(gòu)體
struct Node {
int data;
struct Node* next;
};
// 創(chuàng)建一個新節(jié)點
struct Node* createNode(int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
if (newNode == NULL) {
printf("Memory allocation failed");
exit(1);
}
newNode->data = data;
newNode->next = NULL;
return newNode;
}
// 插入新節(jié)點到鏈表的末尾
void insertNode(struct Node** head, int data) {
struct Node* newNode = createNode(data);
if (*head == NULL) {
*head = newNode;
return;
}
struct Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
// 打印鏈表
void printList(struct Node* head) {
while (head != NULL) {
printf("%d -> ", head->data);
head = head->next;
}
printf("NULL\n");
}
int main() {
struct Node* head = NULL;
insertNode(&head, 1);
insertNode(&head, 2);
insertNode(&head, 3);
printList(head);
return 0;
}
在這個例子中,首先定義了一個表示鏈表節(jié)點的結(jié)構(gòu)體Node
,然后定義了一個createNode
函數(shù)來創(chuàng)建一個新的節(jié)點,一個insertNode
函數(shù)來插入新節(jié)點到鏈表的末尾,以及一個printList
函數(shù)來打印鏈表。
在main
函數(shù)中,首先創(chuàng)建一個空鏈表,然后插入三個節(jié)點,并最后打印出整個鏈表的內(nèi)容。