链表的应用

news/2024/12/17 5:56:19/

尾删

int tail_del (linkListPtr S)
{
    if(NULL == S || empty(S))
    {
        printf("失败\n");
        return 0;
    }
    linkListPtr q = S;
    for(int i=0 ; i<S->len-1;i++)
    {
        q=q->next;
    }
    free(q->next);
    q->next=NULL;
    S->len--;
    return 1;
}

任意位置删除
int any_del(linkListPtr S ,int s)
{
    if(NULL == S||empty(S)||s<1||s>S->len)
    {
        printf("删除失败\n");
        return 0;

    }
    linkListPtr q = S;
    linkListPtr p = NULL;
    for (int i=0;i<s;i++)
    {
        p=q;
        q=q->next;
    }
    if (p == NULL) {
        
        S = q->next;
        free(q);
    } else {
        
        p->next = q->next;
        free(q);
    }
    return 1;
}

改变数据

int change(linkListPtr S ,int s,DataType e)
{
    if(NULL == S)
    {
        printf("添加失败!\n");
        return 0;
    }
    linkListPtr p = S;
    int i=0;
    while(p!=NULL &&i<s)
    {
        p=p->next;
        i++;
    }
    if (p == NULL || i>s){
        printf("位置无效\n");
        return 0;
    }
    p->data=e;
    return 1;
}

linkListPtr find(linkListPtr S ,int e)
{
    if(NULL == S || empty(S))
    {
        printf("查找失败\n");
        return 0;
    }
    linkListPtr p =S;
    for (int i=0 ; i<S->len;i++)
    {
        p=p->next;
        if(p->data == e)
        {
            printf("%p\n",p);
            return p;
        }
    }
    return 0;
}

反转

void reverse(linkListPtr S )
{
    if(NULL == S || empty(S))
    {
        printf("default\n");
        return 0;
    }
    linkListPtr q = S;
    linkListPtr p =NULL;

linkListPtr o =NULL;

  while (q != NULL) {
        o = q->next; 
        q->next = p;
        p = q; 
        q = o;
    }

    S = p;
}


http://www.ppmy.cn/news/1555786.html

相关文章

深度学习实战101-基于生成对抗网络GAN在医学核磁共振跨模态的应用,以及性能优化,并结合代码实例进行说明

大家好,我是微学AI,今天给大家介绍一下深度学习实战101-基于生成对抗网络GAN在医学核磁共振跨模态的应用,以及性能优化,并结合代码实例进行说明。在医学影像领域,跨模态重建是一项前沿技术,旨在解决多模态影像获取受限的问题。这项技术的核心目标是 利用现有的一种模态影…

scala泛型的特质:Trait

泛型特质指的是把泛型定义到特质的声明上, 即:该特质中的成员的参数类型是由泛型来决定的. 在定义泛型特质的子类或者子单例对象时, 明确具体的数据类型. 定义格式: 1)trait 类名[T] 2)trait 类名[S,T...] 演示代码如下&#xff1a; object demo18_3 {trait Logger[x]{val…

架构12-容器间网络

零、文章目录 架构12-容器间网络 1、Linux网络虚拟化 &#xff08;1&#xff09;网络通信模型 网络通信模型概述 OSI 七层模型 和 TCP/IP 四层模型 是理解网络通信的基础。Linux 网络协议栈&#xff08;简称“网络栈”&#xff09;呈现“逐层调用&#xff0c;逐层封装”的特…

加载文件到docker中的mysql上

一 非docker 二 docker 2.1 先上传文件到docker容器中 docker cp 文件路径及文件 容器名:存放的路径 2.2 进入docker容器 docker exec -it 容器id /bin/bash 2.2 加载文件到数据库 1 不需要连接mqsql mysql -u root -p 数据库名 &…

ACL(访问控制列表)

ACL技术概述 • 随着网络的飞速发展&#xff0c;网络安全和网络服务质量 QoS &#xff08; Quality of Service &#xff09;问题日益突出。 ▫ 园区重要服务器资源被随意访问&#xff0c;园区机密信息容易泄露&#xff0c;造成安全隐患。 ▫ Internet 病毒肆意侵略园区内网&am…

如何进行mysql慢查询日志设置以及日志管理与分析

1、引言 MySQL的慢查询日志是MySQL提供的一种日志记录功能&#xff0c;它用于记录在MySQL中响应时间超过设定阈值的SQL语句。 主要作用如下&#xff1a; 发现性能问题&#xff1a;通过分析慢查询日志&#xff0c;可以找出执行时间较长的SQL语句&#xff0c;从而…

大数据相关标准——GB/T 38676-2020信息技术 大数据 存储与处理系统功能测试要求(山东省大数据职称考试)

大数据分析应用-初级 第一部分 基础知识 一、大数据法律法规、政策文件、相关标准 二、计算机基础知识 三、信息化基础知识 四、密码学 五、大数据安全 六、数据库系统 七、数据仓库. 第二部分 专业知识 一、大数据技术与应用 二、大数据分析模型 三、数据科学 大数据相关标准…

Rust之抽空学习系列(三)—— 编程通用概念(中)

Rust之抽空学习系列&#xff08;三&#xff09;—— 编程通用概念&#xff08;中&#xff09; 1、变量&可变性 在Rust中&#xff0c;变量默认是不可变的 fn main() {let x 5;println!("x is {}", x); }使用let来声明一个变量&#xff0c;此时变量默认是不可变…