数据结构---链表

news2024/9/21 2:36:50

 

//链表的创建
Link_t *create_link()
{
    Link_t *plink = malloc(sizeof(Link_t));
    if(NULL == plink)
    {
        perror("fail plink");
        return NULL;
    }
    plink->phead = NULL;
    plink->clen = 0;
    return plink;
}
//头插
int push_link_head(Link_t *plink, DataType data)
{
    Link_Node_t *pnode = malloc(sizeof(Link_Node_t));
    if(NULL == pnode)
    {
        perror("fail malloc");
        return -1;
    }
    pnode->data = data;
    pnode->pnext = NULL;

    pnode->pnext = plink->phead;
    plink->phead = pnode;
    plink->clen++;

    return 0;
}
//尾插
int push_link_end(Link_t *plink, DataType data)
{
    Link_Node_t *p = plink->phead;
    if(p == NULL)
    {
        push_link_head(plink, data);
    }
    else
    {
        while(p->pnext != NULL)
        {
            p = p->pnext;
        }
        Link_Node_t *pnode = malloc(sizeof(Link_Node_t));
        if(NULL == pnode)
        {
            perror("fail pnode");
            return -1;
        }
        p->pnext = pnode;
        pnode->pnext = NULL;
        pnode->data = data;
        plink->clen++;
    }
    return 0;
}
//头删
int push_head_pop(Link_t *plink)
{
    Link_Node_t *p = plink->phead;
    if(p == NULL)
    {
        return 0;
    }
    else
    {
        plink->phead = p->pnext;
        free(p);
    }
    plink->clen--;
    return 1;
}
//尾删
int push_end_pop(Link_t *plink)
{
    Link_Node_t *p = plink->phead;
    if(p == NULL)
    {
        return 0;
    }
    else if(p->pnext == NULL)
    {
        push_head_pop(plink);
    }
    else
    {
        while(p->pnext->pnext != NULL)
        {
            p = p->pnext;
        }
        free(p->pnext);
        p->pnext = NULL;
    plink->clen--;
    }
    return 1;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2102119.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

九月最新蜘蛛池|泛码网的SEO工具怎么样?

在当今数字化的时代,网络营销已经成为企业和个人推广的重要手段。而在众多网络营销方式中,搜索引擎优化(SEO)备受关注。随着 SEO 的发展,各种 SEO 工具也如雨后春笋般涌现。那么,这些 SEO 工具到底有没有用…

AI制作情侣头像副业项目,每天只需2小时,收入是我工资的三倍(附教程)

现在好赚钱的项目模式,一般都是提供情绪价值, 用AI制作情侣头像这个就是一个非常不错的情绪价值输出。 这个项目被真名是可以落地实操的,做好了日入500是可以有的。(文末免费领取教程) 项目介绍 在当下社会中,年轻情侣都喜欢用…

SpringFrameWork学习笔记

本笔记基于【尚硅谷新版SSM框架全套视频教程,Spring6SpringBoot3最新SSM企业级开发】https://www.bilibili.com/video/BV1AP411s7D7?vd_sourcea91dafe0f846ad7bd19625e392cf76d8 总结 资料获取网址:https://www.wolai.com/v5Kuct5ZtPeVBk4NBUGBWF 技术…

用 coze 做一个简单的外卖评价助手

大家有没有遇到过这种情况?点外卖时看到"好评返现金"的活动,可是又不想输入太多内容,那该怎么办呢? 别担心,今天我就来教大家如何利用 Coze 智能体,只需要一张简单的图片就能自动帮你生成好评! …

2024年建筑电工(建筑特殊工种)证模拟考试题库及建筑电工(建筑特殊工种)理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年建筑电工(建筑特殊工种)证模拟考试题库及建筑电工(建筑特殊工种)理论考试试题是由安全生产模拟考试一点通提供,建筑电工(建筑特殊工种)证模拟考试题库是根据建筑电工(建筑特殊工种)最新版教材&#…

Phalcon 增删改查的搭建过程

一 结果展示 先展示效果: 1 查询: 2 删除 3 插入 插入之前,数据库里面表的数据如下: 插入之后:

Git基础教程:掌握版本控制的秘密

🌈 个人主页:Zfox_ 🔥 系列专栏:C从入门到精通 目录 🚀 什么是Git 🚀 在本系列博客中所实现的目标 一: 🔥 Git 初识 二: 🔥 Git 安装 🍊 Linux-c…

结构型设计模式—组合模式

结构型设计模式—组合模式 欢迎长按图片加好友,我会第一时间和你分享持续更多的开发知识,面试资源,学习方法等等。 组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构来表示…

亿图图示下载安装教程EdrawMax Pro 13版超详细图文教程

亿图图示下载安装教程EdrawMax Pro 13版超详细图文教程: 亿图图示是一款功能强大的综合绘图软件,具有以下特点和功能 丰富的绘图类型:涵盖 210 余种办公绘图类型,包括流程图、思维导图、信息图、工业设计、组织架构图、平面设计…

k8s使用报错

报错内容: [rootk8s-master ~]# kubectl get nodes E0903 17:21:22.183325 4630 memcache.go:265] couldnt get current server API group list: Get "https://172.25.250.100:6443/api?timeout32s": dial tcp 172.25.250.100:6443: connect: connec…

多目标应用:基于环形拓扑的多目标粒子群优化算法(MO_Ring_PSO_SCD)的移动机器人路径规划研究(提供MATLAB代码)

一、机器人路径规划介绍 移动机器人(Mobile robot,MR)的路径规划是 移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或…

SpringBoot2:配置类的一般写法

1、知识准备 首先,我们要知道,springboot的配置类的构造器,构造器参数,是从IOC容器中获取的。 2、案例说明 我随便找个springboot的一个自动配置类 org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAuto…

阻塞队列-单锁实现

使用阻塞队列 当我们多个线程下 对 一个队列进行操作,队列满了的情况下,其他线程再次 offer,会一直阻塞等待 对一个队列进行出队操作的时候,队列空的情况下,会一直阻塞等待删除,直到队列有元素的时候&a…

Java-线程的生命周期7大状态

在 Java 中,线程的生命周期可以分为多个状态,这些状态描述了线程从创建到终止的整个过程。Java 线程的生命周期主要包括以下七大状态: 1.新建状态(New) 当一个线程对象被创建但尚未调用 start() 方法时,线…

Zabbix结合Grafana

一、Grafana简介 Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器。Grafana 是开源的,功能齐全的度量仪表盘和图形编辑器,支持 Graphite,InfluxDB 和 OpenTSDB。 Grafana 主要特性:灵活丰富的图形化选项;可以混合…

数分基础(06)商业分析四种类型简介

文章目录 1. 商业分析2. 四种类型2.1 描述性分析和诊断性分析2.1.1 加载Global_Superstore数据集2.1.2 描述性分析2.1.3 诊断性分析2.1.4 再进一步各地区的订单数量和平均订单金额按客户群体分析销售额和利润折扣率和利润产品类别和子类别的销售和利润 本小节小结 2.2 销售预测…

Nature:最大扩散强化学习

转自:清熙 强化学习(RL)智能体(Agent)常常很难在现实世界中广泛部署:初始化差异影响大,样本效率低下,情境之外难以泛化。 研究发现问题的关键是违反了数据独立同分布 (iid) 的假设…

驱动(RK3588S)第六课时:linux2.6的使用与GPIO子系统的使用

目录 一、Linux2.6 字符设备驱动编写框架1、合成一个完整的设备号函数2、从完整的设备号里提取主设备号3、动态申请设备号4、静态申请设备号5、释放申请的设备号6、Linux2.6 字符设备驱动的核心结构体7、初始化核心结构体8、向内核去申请 linux2.6 字符设备9、释放申请的设备10…

Linux实验报告2-初步使用shell

目录 一:实验目的 二:实验内容 1 请指出下面每条命令中哪部分是命令名、选项和参数 3 以列表及递归方式查看/dev目录下的文件。 4 修改当前系统时间为2015年1月1日。 7 查看/tmp目录下的所有文件,指出哪些属于隐藏文件。 8 统计文件/e…

Kaggle竞赛:Rossmann Store Sales第66名策略复现

之前做过一次Kaggle的时间序列竞赛数据集练习:CSDN链接效果并不理想,之后在Kaggle的评论中又找到了各式各样的模型方法,其中我还手动还原过第三名的Entity Embedding:CSDN链接。这个参赛方法中,使用了除了比赛给出的数…