定义一个单向链表结构体,并完成向链表中插入数据的函数
时间: 2024-09-26 20:03:00 浏览: 65
在计算机科学中,单向链表是一种线性数据结构,其中每个元素由两部分组成:数据域和指向下一个元素的指针。在C语言中,我们可以定义一个名为`ListNode`的结构体来表示链表节点,包含`data`用于存储数据,`next`用于指向下一个节点。
```c
// 定义链表节点
typedef struct ListNode {
int data; // 节点的数据
struct ListNode* next; // 指向下一个节点的指针
} ListNode;
```
接下来,我们需要一个函数`insertNode`来在链表中插入新的节点:
```c
void insertNode(ListNode** head_ref, int new_data) {
// 创建新节点
ListNode* newNode = (ListNode*)malloc(sizeof(ListNode));
newNode->data = new_data;
// 如果链表为空,新节点既是头结点也是尾结点
if (*head_ref == NULL) {
*head_ref = newNode;
return;
}
// 否则,将新节点添加到链表尾部
ListNode* last = *head_ref;
while (last->next != NULL) {
last = last->next;
}
last->next = newNode;
}
```
这个函数接受一个指向`ListNode`指针的指针(即头结点地址),并根据新数据创建一个新的节点。如果链表为空,则直接设置`head_ref`指向新节点;否则,遍历链表找到最后一个节点,然后将其`next`指针指向新节点。
阅读全文