请详细描述在C语言中使用结构体创建链表,并提供一个示例代码实现链表节点的添加操作。
时间: 2024-11-16 07:17:37 浏览: 13
在C语言中,链表是一种常见的数据结构,它通过节点来保存数据。每个节点通常包含两个部分:一个是存储数据的变量,另一个是指向下一个节点的指针。结构体(struct)是实现链表节点的理想选择,因为它可以封装多个不同类型的变量到一个单一的数据类型中。以下是创建链表节点并添加节点到链表末尾的步骤和示例代码:
参考资源链接:[46家知名企业C语言笔试题集粹](https://wenku.csdn.net/doc/dbt45k3naa?spm=1055.2569.3001.10343)
1. 定义链表节点的结构体类型`ListNode`:
```c
struct ListNode {
int data; // 存储数据
struct ListNode *next; // 指向下一个节点的指针
};
```
2. 创建链表节点:
```c
struct ListNode* createNode(int data) {
struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
if (newNode == NULL) {
exit(-1); // 内存分配失败时退出程序
}
newNode->data = data;
newNode->next = NULL;
return newNode;
}
```
3. 向链表末尾添加节点:
```c
void appendNode(struct ListNode** head, int data) {
struct ListNode* newNode = createNode(data);
if (*head == NULL) {
*head = newNode; // 如果链表为空,新节点即为头节点
} else {
struct ListNode* current = *head;
while (current->next != NULL) { // 遍历到链表的最后一个节点
current = current->next;
}
current->next = newNode; // 将新节点添加到链表末尾
}
}
```
以上代码展示了如何使用结构体来创建链表节点,并提供了添加节点到链表末尾的函数实现。理解了这些概念之后,你可以通过在《46家知名企业C语言笔试题集粹》中的相关题目来进一步练习和巩固这些知识,特别是有关数组操作、结构体和链表的题目,这些都将有助于你为面试做好充分的准备。
参考资源链接:[46家知名企业C语言笔试题集粹](https://wenku.csdn.net/doc/dbt45k3naa?spm=1055.2569.3001.10343)
阅读全文