C语言:链表

首先,什么是链表呢?

链表是由节点组成的一种数据结构,它的每一个节点包含数据和指向下一个节点的引用。

常见的链表有许多种:

  1. 单链表:每个节点只有一个指向下一个节点的引用。
  2. 双链表:每个节点有指向前一个和后一个节点的引用。
  3. 循环链表:尾节点指向头节点,形成一个环。

关于链表的简单操作(附上代码):

1.定义链表节点结构:

struct Node 
{
    int data;

    struct Node* next;
};

2.创建空链表:

struct Node* head = NULL;

3.在链表的头部插入元素:

void inserttop(int value)
{
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));

    newNode->data = value;

    newNode->next = head;

    head = newNode;
}

4.在链表尾部插入元素:

void insertEnd(int value)
{
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode->data = value;
    newNode->next = NULL;


    if (head == NULL)
    {
        head = newNode;

    } 
    else 
    {
        struct Node* temp = head;

        while (temp->next != NULL) 
        {
            temp = temp->next;

        }temp->next = newNode;
    }
}

5.删除指定值的节点:

void delete(int value)
{
    struct Node *current = head, *prev = NULL;

    while (current != NULL && current->data != value)
    {
        prev = current;

        current = current->next;
    }

    if (current != NULL) 
    {

        if (prev == NULL)
        {

            head = current->next;

        } 
        else 
        {

            prev->next = current->next;

        }free(current);
    }
}

6.打印链表元素:

void print() 
{
    struct Node* temp = head;

    while (temp != NULL) 
    {
        printf("%d -> ", temp->data);

        temp = temp->next;
    }printf("NULL\n");
}

链表的一些优点:

        链表相对数组,它的插入和删除操作变得更加高效,因为链表不需要移动大量元素,也不需要预先分配固定大小的内存,链表可以动态分配空间。

        同时,栈和队列也可以通过链表实现。链表还能和递归结合,例如反转链表的递归实现。

写在最后:

        这几天我把C语言的链表这一知识点简单的归纳了一下,虽然我归纳的这些链表知识有些浅显,但是易懂!

        感谢大家的阅读!欢迎大家指出文章的错误!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值