学习笔记第十七天

news2024/9/24 1:23:42

1.链表

1.1链表尾插

void push_back(struct Node *pHead,int n)//尾插
{
    if(isEmpty(pHead))
    {
        push_front(pHead,n);
    }
    else
    {
        struct Node *p = pHead->next; 
        while(p->next !=NULL)
        {
            p= p->next;
        }
        struct Node *pNew = malloc(sizeof(struct Node));
        p->next=pNew;
        pNew->next = NULL;
        pNew->a= n;
    }
}

2.链表头删


void pop_front(struct Node *pHead)//头删
{
    if(!isEmpty(pHead))
    {
        struct Node *p = pHead->next;
        pHead->next = p->next;
        free(p);
    }
}

3.链表尾删

void pop_back(struct Node *pHead)//尾删
{
    if(size(pHead)>=2)
    {
        struct Node *p = pHead->next; 
        while(p->next->next !=NULL)
        {
            p= p->next;
        }
        free(p->next);
        p->next=NULL;
    }
    else
    {
        pop_front(pHead);
    }
}

4.链表clear


void clear(struct Node *pHead)
{
    while(!isEmpty(pHead))
    {
        pop_front(pHead);
    }
}

2.共用体(Union)        

        定义:共用体是一种特殊的数据类型,它允许在相同的内存位置存储不同的数据类型。但

是,在任何给定时间,只有共用体中的一个成员是有效的。这是因为所有成员共享同一块内存空

间。

        语法:   

          union 共用体名称

         {
            数据类型1 成员1;
            数据类型2 成员2;
            ...
          };

       共用体(Union)的特点

        内存共享:共用体的所有成员共享同一块内存空间。这意味着在同一时刻,共用体中只能存储一个成员的值,其他成员的值将被覆盖。

        节省空间:由于共用体的成员共享内存。

        类型灵活:共用体允许在相同的内存位置存储不同类型的数据,从而提供了数据类型的灵活性。

        大小由最大成员决定:共用体的大小由其成员中占用内存最大的成员决定,以确保能够存储任何成员的值。

        地址相同:共用体变量的地址和它的各成员的地址都是同一地址。

3. 枚举类型(Enum)        

        定义:枚举类型是一种用户定义的类型,它包含一组命名的整数常量。枚举类型使代码更加

清晰易读法:

enum 枚举类型名称

{
    枚举值1,
    枚举值2,
    ...
};

默认情况下,枚举值从0开始,依次递增。但也可以手动指定值。

枚举(Enum)的特点

        有限集合:枚举类型的变量只能取该枚举类型中定义的值,这限制了变量的取值范围.

        自动赋值:在定义枚举时,如果没有显式地为枚举项指定值,编译器会自动为它们赋值,通

常是从0开始递增的整数。

        方便使用:在switch语句中使用枚举类型可以使代码更加简洁明了。此外,枚举类型还可以用

于函数参数、返回值等场合。

        常量性质:枚举类型的元素在定义后被视为常量,不能修改其值。这有助于防止在程序中意外地更改枚举项的值.

      4.  typedef    

         定义:typedef用于为现有的数据类型定义一个新的名称(别名)。这有助于简化复杂类型声

明的书写,使代码更加清晰。

语法:

typedef 现有类型 新类型名称;

示例:

typedef struct 
{
    char name[50];
    int age;
    float height;
} Person;

Person person1 = {"Alice", 30, 5.5};
printf("Name: %s\n", person1.name);

5.位运算

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

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

相关文章

C++ bind复杂回调逻辑分析

回调函数基本知识回顾 回调函数是什么 函数指针或者函数对象作为参数传递给另一个函数的机制,当某个事件发生的时候,系统会自动的调用这些函数进行处理事件驱动模型中作用,回调函数则被用于处理I/O事件,通常用来读写异常等事件 bi…

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——2Yolo使用之ONNX模型准备

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——2Yolo使用之ONNX模型准备 ​ 大家好,因为板端BPU环境,可以加速目标检测的速度,所以今天在此先给大家带来如何准备一个模型,下一期会给大家带来如何在板端部…

如何做一个惊艳领导和客户的原型?

在产品开发过程中,原型设计是验证设计想法、提升用户体验的重要环节。Axure作为一款业界领先的原型设计工具,凭借其强大的交互设计和丰富的功能,赢得了全球设计师和开发者的信赖。而Axure的高效交互元件库,则如同一本字典或说明书…

将YOLOv8模型从PyTorch的.pt格式转换为OpenVINO支持的IR格式

OpenVINO是Open Visual Inference & Neural Network Optimization工具包的缩写,是一个用于优化和部署AI推理模型的综合工具包。OpenVINO支持CPU、GPU和NPU设备。 OpenVINO的优势: (1).性能:OpenVINO利用英特尔CPU、集成和独立GPU以及FPGA的强大功能提…

原生IP节点是什么意思?和socks5节点有什么区别?

在了解这两种代理节点前,我们首先要了解:节点是什么? 首先,在电信网络当中,一个节点是一个连接点。表示一个再分发点又或者是一个通信端点。节点的定义依赖于所提及的网络和协议层。一个物理网络节点是一个连接到网络…

深度强化学习:穿越智能迷雾,探索AI新纪元

近年来,深度强化学习成为关注的热点。在自动驾驶、棋牌游戏、分子重排和机器人等领域,计算机程序能够通过强化学习,理解以前被视为超级困难的问题,取得了令人瞩目的成果。在围棋比赛中,AlphaGo接连战胜樊麾、李世石和柯…

使用 SpringBoot + 虚拟线程将服务性能提升几百倍

虚拟线程简介 虚拟线程是 Java 平台的一项创新特性。虚拟线程是一种轻量级的线程实现,它在操作系统层面并不对应真实的内核线程,而是由 JVM 进行管理和调度。这使得可以在不消耗大量系统资源的情况下创建大量的线程,从而能够更高效地处理并发任务。 虚拟线程与普通线程的区…

【数学建模】——【A题 信用风险识别问题】全面解析

目录 1.题目 2.解答分析 问题1:指标筛选 1.1 问题背景 1.2 数据预处理 1.3 特征选择方法 1.4 多重共线性检测 1.5 实现步骤 问题2:信用评分模型 2.1 问题背景 2.2 数据分割 2.3 处理不平衡数据 2.4 模型选择与理由 问题3:模型对…

『 Linux 』线程池与 POSIX 线程的封装编码实现

文章目录 线程池概念线程池的编码实现线程池的测试参考代码 线程的封装使用测试封装后的线程参考代码 线程池概念 池化技术是一种资源管理方法,通过预先创建和管理一组资源以便在需要使用时快速分配这些资源; 线程池是池化技术的一种典型应用; 资源分配 在线程池中预先创建一定…

【python015】常见成熟AI-图像识别场景算法清单(已更新)

1.欢迎点赞、关注、批评、指正,互三走起来,小手动起来! 【python015】常见成熟AI-图像识别场景算法清单及代码【python015】常见成熟AI-图像识别场景算法清单及代码【python015】常见成熟AI-图像识别场景算法清单及代码文章目录 1.背景介绍2.`Python`版数据爬取、解析代码2.…

鸿蒙应用框架开发【画中画效果实现】 UI框架

画中画效果实现 介绍 本示例通过kit.ArkUI、kit.MediaKit等接口,实现了视频播放、手动和自动拉起画中画、画中画窗口控制视频播放和暂停等功能。 效果预览 使用说明 在主界面,可以点击对应视频按钮进入视频播放页面;视频播放页面点击开启…

三星One UI 7.0引入苹果的几大特色功能,iOS用户都羡慕哭了

在智能手机操作系统的创新之路上,苹果iOS系统的Dynamic Island和Live Activities功能无疑为用户带来了全新的交互体验。 现在,三星One UI 7.0系列的即将发布,似乎预示着安卓阵营也将迎头赶上,甚至可能在某些方面超越苹果。以下是…

AcWing-AcWing 837. 连通块中点的数量

在原来并查集的基础上增加一个Size数组,Size的初始化是必须先每个元素初始化为1 Size只对根节点有效,比如Size[find(1)]就是找1的祖先节点,然后访问祖先节点的个数。当我们联通a点和b点时,如果已经是联通状态了,那么无…

深度解读:等保测评标准与实践指南

在信息时代,数据安全与隐私保护成为企业和组织不可忽视的关键议题。等保测评,即信息安全等级保护测评,作为我国信息安全管理体系的重要组成部分,为各行业提供了标准化的安全评估与改进路径。本文旨在深度解读等保测评标准的核心要…

探索Python日期时间的宝藏:`dateutil`库的神秘面纱

文章目录 探索Python日期时间的宝藏:dateutil库的神秘面纱背景:为何选择dateutil?dateutil是什么?如何安装dateutil?简单函数介绍与使用parse函数:智能日期时间解析relativedelta:计算相对日期t…

一个超强的Python机器学习超参优化库

在机器学习模型的训练过程中,选择合适的超参数对模型性能的提升至关重要。超参数优化是指在给定的超参数空间内,找到一组能够使模型表现最佳的超参数组合。虽然有许多方法可以用来进行超参数优化,但在本文中,我们将重点介绍一个强大且易用的库——Optuna。 什么是Optuna?…

顺序表、单链表、顺序栈,链栈的基本运算

目录 顺序表的基本运算 单链表的基本运算 顺序栈的基本运算 链栈的基本运算 线性表的9个基本运算&#xff1a; 栈的6个基本运算&#xff1a; 顺序表的基本运算 //顺序表的基本运算************************************************************** #include<stdio…

通过yfinance获取股票历史数据

以比亚迪为例&#xff0c;要获取A股比亚迪的十年的历史数据并保存为CSV文件&#xff0c;我们可以使用Python中的第三方库如pandas和yfinance。yfinance库是一个用于下载雅虎财经数据的工具&#xff0c;它支持股票、期权等金融工具的数据获取。 1.安装yfinance和pandas 首先&a…

云服务器带宽什么意思?如何正确选择

云服务器带宽什么意思?云服务器带宽指的是云服务器在互联网上的数据传输能力。就像水流通过水管一样&#xff0c;数据通过所谓的“带宽”在网络中流动。这个带宽越大&#xff0c;每秒能够传输的数据就越多&#xff0c;对大量访问处理的能力也就越强。云服务器带宽是云服务器可…

【开源项目】基于RTP协议的H264码流发送器和接收器

RTP协议 1. 概述1.1 RTP协议1.2 RTP和UDP的关系 2. RTP打包H264码流2.1 RTP单一传输2.2 RTP分片传输2.3 RTP多片合入传输 3.工程3.1 头文件3.1.1 rtp.h3.1.2 utils.h 3.2 cpp文件3.2.1 rtp.cpp3.2.2 utils.cpp 4.测试5.小结 参考&#xff1a; 视音频数据处理入门&#xff1a;UD…