当前位置: 首页 > article >正文

假期day4,链表增加与删除(2024/2/5)

单链表头插增加

Linklist insert_head(datatype element,Linklist head)
{
    //创建新节点
Linklist s=create_node();
    if(NULL==s)
    return head;
s->data=element;

    //1,判断链表为空
    if(NULL==head)
    {
    head=s;
    }
    else //链表不为空
    {
    s->next=head;
    head=s;
    }

    return head;
}

单链表头删除

Linklist delete_head(Linklist head)
{
    //1,判断链表为空
    if(NULL==head)
    {
        return head;
    }
    else //链表存在1个或多个节点
    {
        Linklist del=head;
        head=head->next;
        free(del);
        del=NULL;
    }

    return head;
}

单链表删除指定位置

Linklist delete_pos(int pos,Linklist head)
{
    //1,判断位置是否合法
    //2,判断链表为空
    if(NULL==head || pos<1 || pos>Length(head))
    {
        return head;
    }
    //3,判断是否只有一个节点,删除第一个位置
    if(head->next==NULL ||pos==1)
    {
        head=delete_head(head);
    }
    else //存在多个节点 >=2
    {
    //找到pos-1位置的节点
    Linklist p=head;
    for(int i=1;i<pos-1;i++)
    {
        p=p->next;
    }
    //删除p->next
    Linklist q=p->next;
    p->next=q->next;
    free(q);q=NULL;
    }
    return head;
}

双链表头插

Doublelink double_insert_head(datatype element,Doublelink head)
{
    //创建新节点s
    Doublelink s=create_node();
    if(s==NULL)
        return head;
    strcpy(s->data,element);

    //1.判断链表为空
    if(NULL ==head)
        head=s;
    //2.存在多个节点>=1
    else
    {
        s->next=head;
        head->priv=s;
        head=s;
    }
    return head;

}

双链表头删除

Doublelink delete_rear(Doublelink head)
{
    //1,判断链表为空
    if(NULL ==head)
        return head;
    //2,只有一个节点
    if(head->next==NULL)
    {
        free(head);head=NULL;
    }
    else //>=2
    {
        //找到最后一个节点
        Doublelink p=head;
        while(p->next!=NULL)
        {
            p=p->next;
        }
        p->priv->next=NULL;
        free(p);
        p=NULL;
    }
    return head;
}

http://www.kler.cn/a/229707.html

相关文章:

  • Windows C++开发环境:VSCode + cmake + ninja + msvc (cl.exe) + msys2/bash shell
  • 【机器学习:八、逻辑回归】
  • Nacos 3.0 Alpha 发布,在安全、泛用、云原生更进一步
  • 1、深度学习环境配置相关下载地址整理(cuda、cudnn、torch、miniconda、pycharm、torchvision等)
  • Unity之协同程序
  • 如何在HA智能家居系统中添加HACS集成并实现异地控制家中苹果与小米设备
  • Android Compose 一个音视频APP——Magic Music Player
  • [Linux] 网络编程套接字
  • ChatGPT Plus如何升级?信用卡付款失败怎么办?如何使用信用卡升级 ChatGPT Plus?
  • 算法学习——LeetCode力扣哈希表篇2
  • MIT_线性代数笔记:第 34 讲 总复习
  • vue3 之 商城项目—layout静态模版结构搭建
  • 网络版本计算器
  • MySQL5.7 百万数据迁移到 ElasticSearch7.x
  • LeetCode、790. 多米诺和托米诺平铺【中等,二维DP,可转一维】
  • 回归测试:在不断变化的环境中确保软件的稳定性
  • Python初学者学习记录——python基础综合案例:数据可视化——动态柱状图
  • Vue(二十):ElementUI 扩展实现表格组件的拖拽行
  • thinkphp6入门(17)-- 网站开发中session、cache、cookie的区别
  • 双非本科准备秋招(18.1)—— 力扣二叉树
  • nginx 的 ngx_http_upstream_dynamic_module 动态域名解析功能的使用和源码详解
  • 作业2024/2/5
  • Javaweb之SpringBootWeb案例之 登录功能的详细解析