admin 管理员组

文章数量: 887021


2024年1月23日发(作者:substring的用法 mysql用不了)

在C语言中,可以使用结构体和链表来实现一个简单的链表。以下是一个示例:

c复制代码

#include

#include

// 定义链表节点结构体

typedef struct Node {

int data;

struct Node* next;

} Node;

// 定义链表结构体

typedef struct LinkedList {

Node* head;

Node* tail;

} LinkedList;

// 创建新节点

Node* createNode(int data) {

Node* newNode = (Node*)malloc(sizeof(Node));

if(newNode == NULL) {

printf("Memory allocation failedn");

exit(0);

}

newNode->data = data;

newNode->next = NULL;

return newNode;

}

// 在链表末尾添加节点

void addNode(LinkedList* list, int data) {

Node* newNode = createNode(data);

if(list->head == NULL) {

list->head = newNode;

list->tail = newNode;

} else {

list->tail->next = newNode;

list->tail = newNode;

}

}

// 打印链表中的所有节点

void printList(LinkedList* list) {

Node* temp = list->head;

while(temp != NULL) {

printf("%d -> ", temp->data);

temp = temp->next;

}

printf("NULLn");

}

int main() {

LinkedList list;

= NULL;

= NULL;

addNode(&list, 1); // 在链表末尾添加节点1

addNode(&list, 2); // 在链表末尾添加节点2

addNode(&list, 3); // 在链表末尾添加节点3

printList(&list); // 打印链表中的所有节点,输出应为3 -> 2 -> 1 -> NULL

return 0;

}

在这个示例中,我们首先定义了两个结构体,一个用于表示链表中的节点,另一个用于表示整个链表。然后,我们定义了一些函数来创建新节点、在链表末尾添加节点和打印链表中的所有节点。最后,在main函数中,我们创建了一个空的链表,并使用这些函数向其中添加了一些节点,并打印出了整个链表。


本文标签: 链表 节点 添加 用法 末尾