📜  将第一个元素添加到链表 (1)

📅  最后修改于: 2023-12-03 15:39:19.911000             🧑  作者: Mango

将第一个元素添加到链表

当我们要添加元素到链表中时,我们需要通过指针来进行操作。在链表没有元素的情况下,我们需要将新元素作为链表的第一个元素来添加。下面是一个简单示例,演示了如何将第一个元素添加到链表中。

示例代码
#include <stdio.h>
#include <stdlib.h>

struct node {
    int data;
    struct node *next;
};

void addFirst(struct node **head, int data) {
    struct node *newNode = (struct node*) malloc(sizeof(struct node));
    newNode->data = data;
    newNode->next = *head;
    *head = newNode;
}

int main() {
    struct node *head = NULL;

    // 添加第一个元素
    addFirst(&head, 1);

    // 输出当前链表
    struct node *current = head;
    while (current != NULL) {
        printf("%d ", current->data);
        current = current->next;
    }
    printf("\n");

    return 0;
}
代码说明
声明一个链表节点结构体

我们首先需要声明一个链表节点的结构体,包含了数据和指向下一个节点的指针。

struct node {
    int data;
    struct node *next;
};
定义添加第一个元素的函数

使用双重指针,我们可以修改指向头结点的指针,从而在链表的开头添加一个新的节点。

void addFirst(struct node **head, int data) {
    struct node *newNode = (struct node*) malloc(sizeof(struct node));
    newNode->data = data;
    newNode->next = *head;
    *head = newNode;
}
在主函数中调用添加元素的函数
int main() {
    struct node *head = NULL;

    // 添加第一个元素
    addFirst(&head, 1);

    // 输出当前链表
    struct node *current = head;
    while (current != NULL) {
        printf("%d ", current->data);
        current = current->next;
    }
    printf("\n");

    return 0;
}
运行结果
1
总结

在链表没有元素的情况下,我们需要将新元素作为链表的第一个元素来添加。这可以通过使用双重指针来实现,在头结点的前面插入新节点。该示例代码演示了如何将第一个元素添加到链表中。