用c语言写出一个为链表添加节点的代码
时间: 2024-05-08 17:15:38 浏览: 111
以下是一个简单的示例代码,用于向链表中添加节点:
```c
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
void insertAtEnd(struct Node** head, int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->next = NULL;
if (*head == NULL) {
*head = newNode;
return;
}
struct Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
int main() {
struct Node* head = NULL;
insertAtEnd(&head, 10);
insertAtEnd(&head, 20);
insertAtEnd(&head, 30);
struct Node* current = head;
while (current != NULL) {
printf("%d ", current->data);
current = current->next;
}
return 0;
}
```
在这个示例中,我们定义了一个 `Node` 结构体,包含一个整数数据 `data` 和一个指向下一个节点的指针 `next`。
我们还定义了一个函数 `insertAtEnd`,它接受一个指向链表头节点的指针 `head` 和一个整数数据 `data`。该函数会创建一个新节点,并将其添加到链表的末尾。
在 `main` 函数中,我们使用 `insertAtEnd` 函数向链表中添加三个节点,并使用一个循环打印出链表中的所有数据。
需要注意的是,在 `insertAtEnd` 函数中,我们使用了一个二级指针来修改链表头节点的值。这是因为在 C 语言中,函数参数传递是按值传递的,如果我们想要修改一个指针的值,就需要传递指向该指针的指针。
阅读全文