- 博客(20)
- 收藏
- 关注
原创 数据结构Day 06:线性结构、库操作及 Makefile 完整学习笔记
所有元素按线性顺序排列,可通过顺序存储或链式存储两种方式实现,是数据结构中最基础、最常用的结构类型。
2026-05-14 09:04:41
446
原创 数据结构Day 05:特殊的线性结构(超详细完整版,逐点扩充,适配考试 / 作业 / 面试)
a. 特殊的线性结构i.表的一端插入,另一端删除队列也是典型的操作受限的线性结构,与栈的 “单端操作” 不同,队列采用 “双端操作”—— 线性表开放两个端口,两个端口分工明确、互不干扰,一端只负责插入,另一端只负责删除,不允许在中间位置进行任何操作,确保队列的 “先进先出” 特性。补充:这种 “双端分工” 的设计,决定了队列适合用于 “公平排队” 的场景,所有元素按进入顺序依次处理,无插队现象,逻辑清晰、秩序井然。ii.插入称为入队,删除称为出队。
2026-04-30 09:59:07
373
原创 数据结构Day 04:完整进阶笔记(超详尽扩充版|全覆盖知识点 + 底层原理 + 拓展延伸 + 面试考点)
存储结构:采用物理地址连续的内存空间存储元素,逻辑顺序与物理顺序完全一致,底层依托数组实现;访问特性:支持随机访问,通过下标可直接定位任意元素,访问时间复杂度 O (1);查找性能:无序顺序表只能逐个遍历查找 O (n),有序顺序表支持折半查找,效率 O (log₂n),查找性能极强;增删性能:头部、中间位置插入 / 删除元素时,必须批量平移后续所有元素,时间复杂度 O (n),效率低下;仅尾部操作效率 O (1);空间特性:容量固定或需要提前扩容,存在预留空间浪费,内部碎片较多;
2026-04-29 11:16:53
497
原创 数据结构Day 03:顺序表(回顾 + 补充,衔接链表学习)
顺序表是线性结构的顺序存储结构,本质是用一段地址连续的存储单元(通常是数组)来存储线性表中的元素,元素的逻辑顺序与物理顺序完全一致。补充:线性结构的核心特征 —— 元素之间只有 “前驱” 和 “后继” 关系,除了第一个元素无前驱、最后一个元素无后继,其余每个元素都有且只有一个前驱和一个后继。链表是线性结构的链式存储结构,与顺序表的 “地址连续” 相反,链表中元素(结点)的地址不连续,通过指针(链)来维系元素之间的线性关系,实现 “前驱 - 后继” 的逻辑顺序。双链表是单链表的延伸,“双” 指的是。
2026-04-27 11:10:03
720
原创 数据结构Day 02:入门:顺序表功能扩充+快速排序+折半查找+作业实现
为了简化代码,提升可读性和工程化程度,先对顺序表结构体、函数指针进行typedef重定义,同时回顾基础接口(初始化、插入、遍历、销毁),确保后续高级功能可正常衔接。// 顺序表结构体 typedef 重定义,简化后续使用void *arr;// 顺序表数据存储起始地址(void* 支持任意类型)int size;// 每个元素的字节大小int nmemb;// 当前有效元素个数// 顺序表最大容量// 函数指针类型重定义(简化写法,工程标准)// 比较函数指针// 打印函数指针。
2026-04-26 17:24:34
592
原创 数据结构Day 01:数据结构开篇总览 + 顺序表超详细完整版(含原理 + 代码 + 注释 + 面试考点)
顺序表(Sequential List)是线性表的顺序存储结构,它将线性表中的所有元素,按逻辑顺序依次存储在一片连续的物理内存空间中,元素的逻辑顺序与物理存储顺序完全一致。ADT(Abstract Data Type,抽象数据类型)是指 “只关注数据的逻辑结构和操作接口,不关注底层实现” 的思想。我们封装顺序表时,采用 ADT 思想,隐藏底层数组实现,对外提供统一的操作接口,同时支持任意数据类型存储。// 顺序表抽象数据类型(ADT)定义void *arr;
2026-04-24 10:19:08
918
原创 Day 11:C 语言自定义数据类型详解:结构体、内存对齐、共用体、枚举、typedef
struct 结构体名 {类型1 成员名1;类型2 成员名2;类型3 成员名3;......struct:结构体关键字,固定关键字不能省略结构体名:自定义标识符结构体成员列表,每一个成员都有自己独立的数据类型和变量名// 编号// 姓名int age;// 年龄整体是结构体类型idnameage为结构体的成员变量访问结构体成员使用 .点运算符per1.id;per1.name;per1.age;结构体变量。成员名结构体指针 -> 成员名(*结构体指针).成员名。
2026-04-22 16:18:18
814
原创 Day 10:C语言指针终极进阶:指针运算、数组指针、指针数组、函数指针(全网最细,面试必刷,含完整实战)
表达式++作用对象执行顺序表达式结果指针p是否偏移指向的值是否改变*p++指针p(后置)先取值,后p自增p自增前指向的值是否*(p++)指针p(后置)先取值,后p自增p自增前指向的值是否(*p)++指向的值*p(后置)先取值,后*p自增*p自增前的值否是++*p指向的值*p(前置)先*p自增,后取值*p自增后的值否是*++p指针p(前置)先p自增,后取值p自增后指向的值是否。
2026-04-21 15:34:28
575
原创 Day 09:C 语言指针进阶:万能指针、野指针、二级指针与动态内存分配(超详细完整版)
万能指针就是void *类型的指针,也叫无类型指针。它可以接收、存储任意类型数据的地址(int、char、float、结构体、指针等)它是 C 语言中唯一能兼容所有地址类型的指针野指针 = 指向非法 / 无效 / 已释放内存地址的指针地址是随机值指向空间无权限访问操作野指针 = 程序崩溃、段错误 (segmentation fault)二级指针:专门用来存储 一级指针变量地址 的指针指针永远存储地址,类型由所存地址的类型决定c运行int a = 10;// 一级指针:存int地址。
2026-04-18 16:01:36
744
原创 Day 08:C 语言指针超详细详解:指针基础、运算、字符串函数实现、const 指针
语法int a = 10;// 定义指针变量p,类型 int * ,存储变量a的地址p,我们称p为指针变量int *存储内容:普通变量a的内存地址C 语言中只有指针变量可以存储地址,普通变量无法存储地址。const在左边:修饰指向内容 → 常量指针,内容只读,指针可变const在右边:修饰指针本身 → 指针常量,指针只读,内容可变拓展(双向只读):指针不可改,指向内容也不可改。指针是专门存储内存地址的变量类型,地址自带类型,由原变量类型决定。指针运算核心公式:*
2026-04-18 15:57:17
520
原创 Day07:C 语言进阶核心:关键字、递归、变参与预处理详解(面试 + 工程必备)
递归是指函数在函数体内部直接或间接调用自身的编程思想,常用于处理 “分治、嵌套、重复子问题” 结构。预处理阶段:所有N被文本替换为 100无类型、无检查、纯字符串替换__LINE__:当前行号:当前函数名__FILE__:当前文件名__DATE__:编译日期__TIME__:编译时间__STDC__:是否遵循标准 Cstatic是重中之重:修饰局部变量延长生命周期;修饰全局 / 函数限制文件作用域。递归必须具备终止条件与递归公式,深度不宜过大。变参函数依赖格式化串确定参数,入栈顺序。
2026-04-15 09:06:58
638
原创 Day05:C语言核心知识点:数组存储结构与字符数组
1. 数组的核心特性是连续存储,数组名是首元素的地址常量,不是变量,支持加法运算(偏移量由元素类型决定)。arr[n]和*(arr + n)等价,下标访问更直观,解引用访问更贴合地址逻辑。3. C语言中无专门字符串类型,字符串 = 以'\0'结尾的字符数组,'\0'是结束标志,必须存在。4. 字符串操作必须包含<string.h>头文件,重点掌握strlen(求长度)、strcpy(复制)、strcat(拼接)、strcmp(比较),规避数组越界、用“==”比较字符串的误区。
2026-04-15 08:54:51
520
原创 Day02:C语言核心知识点:运算符与控制语句
表达式1, 表达式2, 表达式3, ..., 表达式n执行逻辑:从左到右依次执行每个表达式;整个逗号表达式的结果,是最后一个表达式的结果。常用场景:在循环语句中,同时初始化多个变量或执行多个操作。// 逗号表达式:依次执行a=1, b=2, c=a+b,最终结果是c的值(3)printf("逗号表达式结果:%d\n", res);// 输出3return 0;注意:逗号运算符的优先级最低,若需要将逗号表达式作为一个整体,需加括号。1. 运算符是基础,重点掌握逻辑运算符(&&、||、!
2026-04-14 11:04:15
460
原创 Day06:C语言核心知识梳理:函数与基础实战
函数定义是函数功能的具体实现,它由“函数头部”和“函数体”两部分组成,语法格式必须严格遵循C语言规范,否则会导致编译错误。返回值类型 函数名(参数列表)// 函数体:实现功能的具体语句(变量定义、流程控制、函数调用等)return 返回值;// 若无返回值(返回值类型为void),可省略return,或写 return;
2026-04-14 10:23:36
728
原创 Day04:C语言入门必看——数组的定义、使用与排序算法
数组是数据结构的一种,用于存储一定数量的相同类型数据。👉 通俗理解:数组就是一组相同类型变量的集合数组是最基础的数据结构之一同类型、定长、连续存储重点掌握:定义访问初始化遍历排序。
2026-04-09 20:43:55
346
原创 Day03:Linux 基础入门:文件重定向、网络管理、进程控制与开发环境配置
git remote add origin 你的仓库地址(如:https://gitee.com/zhangzongyan-famous/emb20260401.git)nmcli connection up/down "有线连接 1" # 启用/停用指定连接。cp /etc/passwd . # 复制文件到项目。sudo apt install -y git # 安装 Git。git status # 查看仓库状态。
2026-04-01 18:18:49
633
原创 Day02:Linux 基础操作指南:用户管理、软件包与文件查找
UID 为 0,拥有最高权限,可执行一切操作。:UID 范围为 1~999,通常为非登录用户,用于运行系统服务。:UID >= 1000,用于日常登录,权限受限。
2026-03-31 20:23:17
496
1
原创 Day01:Linux系统的基本使用
ls -l# 输出示例:-rw-rw-r-- 1 zzy zzy 59 3月 30 14:23 hello。chmod 0664 file# 权限:110 110 100 → rw- rw- r--grep -n "key" 文件路径 # 显示匹配行的行号。grep -i "key" 文件路径 # 不区分大小写。cp -r 目录路径 目标位置 # 复制目录(需加 -r)命令的附加功能,通常以 - 开头,如 -l、-i、-d 等。
2026-03-31 14:43:39
659
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅