📅  最后修改于: 2023-12-03 14:57:58.508000             🧑  作者: Mango
在 C 编程语言中,我们经常需要在已存在的列表中添加新元素。本文将介绍如何在 C 中追加元素到列表中。
在 C 中,我们经常使用数组来存储和处理数据。在创建数组时,我们需要确定数组的大小。如果我们希望在已存在的数组中添加新元素,我们需要创建一个新的数组,并将原来的元素复制到新数组中,最后将新元素添加到新数组中。
下面是一个简单的示例代码:
#include <stdio.h>
int main()
{
int nums[5] = {1, 2, 3, 4, 5};
int newNum = 6;
int newNums[6];
int i;
for (i = 0; i < 5; i++)
{
newNums[i] = nums[i];
}
newNums[5] = newNum;
for (i = 0; i < 6; i++)
{
printf("%d ", newNums[i]);
}
return 0;
}
输出结果为:
1 2 3 4 5 6
在上面的代码中,我们先定义了一个大小为 5 的数组 nums
,并赋值为 {1, 2, 3, 4, 5}
。然后我们创建了一个新的数组 newNums
,大小为 6,用于存储新的元素。我们使用一个 for 循环,将原来的元素复制到新数组中。最后,我们将新元素 newNum
添加到新数组中,并输出结果。
除了使用数组外,我们还可以使用链表来存储数据。链表是由节点组成的数据结构,每个节点包含数据和指向下一个节点的指针。
在使用链表时,我们可以通过遍历链表找到最后一个节点,然后将新元素添加到链表的末尾。
下面是一个简单的示例代码:
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct node *next;
};
void append(struct node** head_ref, int new_data)
{
struct node* new_node = (struct node*) malloc(sizeof(struct node));
struct node *last = *head_ref;
new_node->data = new_data;
new_node->next = NULL;
if (*head_ref == NULL)
{
*head_ref = new_node;
return;
}
while (last->next != NULL)
{
last = last->next;
}
last->next = new_node;
return;
}
void printList(struct node *node)
{
while (node != NULL)
{
printf("%d ", node->data);
node = node->next;
}
}
int main()
{
struct node* head = NULL;
append(&head, 1);
append(&head, 2);
append(&head, 3);
append(&head, 4);
append(&head, 5);
append(&head, 6);
printList(head);
return 0;
}
输出结果为:
1 2 3 4 5 6
在上面的代码中,我们使用 struct
定义了一个链表节点 node
,包含数据和下一个节点的指针。然后我们定义了一个 append
函数,用于向链表中添加新元素。在 append
函数中,我们先创建一个新节点 new_node
,然后遍历链表,找到最后一个节点 last
,将新节点 new_node
指向链表的末尾。最后,我们输出结果。
在 C 编程语言中,我们可以通过数组和链表来追加元素到列表中。使用数组时,我们需要创建一个新的数组,并将原来的元素复制到新数组中,最后添加新元素到新数组中。使用链表时,我们可以通过遍历链表找到最后一个节点,然后将新元素添加到链表的末尾。