C语言链表的简单的尾插法

C语言链表的简单的尾插法

今天简单的总结一下关于C语言的尾插法,简单来说就是在一堆的简单的数据节点当中,在一个指定的位置后方插入你想要插入的数据!开整!(自己学习也不是很好哈!,请见谅)
第一步:创建一个链表

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

第二步:封装打印函数(其实也有其他的打印输出的方式,比如之前讲的printf方法,感兴趣可以参考我之前发的,这里只是为了简单的写法哈!)
参考链接:(只是参考哈!)
C语言链表简单的结构

void Printftest(struct test *head)
{
    struct test *p = head;
    while(p != NULL)
    {
        printf("%d\n",p->data);
        p = p->next;
    }
}

首先由链表头开始遍历,一直走到为NULL,(相当于数组的遍历!)

第三步:封装尾插函数

int insertbehind (struct test *p,int data,struct test *new)
{
    while (p != NULL)
    {
        if(p->data == data)
        {
            new->next = p->next;
            p->next = new;
            return 1;
        }
        p = p->next;
    }
    return 0;
}

new是一个新的节点,也就是在链表当中需要插入的数据,同样的。当找到我们需要插入的数据的地方的时候,就使用new来代替之前的p->next,由new->next走向,成功就返回1,失败返回0(插入的数据在之后的main函数当中会有的)。
第四步:主函数

int main()
{
    struct test t1 = {9,NULL};
    struct test t2 = {99,NULL};
    struct test t3 = {999,NULL};
    struct test t4 = {9999,NULL};
    struct test t5 = {99999,NULL};

    t1.next = &t2;
    t2.next = &t3;
    t3.next = &t4;
    t4.next = &t5;

    struct test new = {888,NULL};  /*新节点的创建
    也就是和上面的t1之类的*/
    
    insertbehind(&t1,99,&new);
    Printftest(&t1);
    
    return 0;
}

到主函数的这一步来说的话,基本上八九不离十了,这个就是一个很简单的C语言链表的尾插法。
调用之前封装的函数就可以了。

最后的实现效果:
在这里插入图片描述

OK!这个就是本文章的全部内容了
有什么好的想法或者意见可以评论区留言哈!大家一起交流学习!

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值