-
08 – 数据结构基础知识补充
内存分类 一、静态 / 全局内存(程序运行期间一直存在) 特点:全局变量和静态变量(用static声明)的内存,在程序启动时分配,程序结束才释放。通俗理解:像「公共仓库」,一旦创建就一直存在,所有需要的地方都能访问(全局变量),或在特定范围内持续保留(静态变量)。 解释: 二、自动内存(栈内存,函数调用时临时创建) 特点:函数内的普通局部变量(不用stati…
-
07 – 第二章数据结构线性表 – 顺序表总结
顺序表代码实现 一、动态分配方式实现的所有功能 dynamic_list.c dynamic_list.h relloc函数 realloc 是 C 语言标准库中用于重新调整已分配内存块大小的函数,主要用于动态内存管理(头文件 <stdlib.h>)。 ptr:指向待调整大小的原内存块的指针(若为 NULL,效果等价于 malloc…
-
06 – 第二章数据结构线性表 – 顺序表代码实现(顺序表查找操作)
线性表的基本操作(GetElem&LocateElem) 一、GetElem(L,i,&e) 按位查找:获取表L中第 i 个位置元素的值 代码实现1 – 静态分配方式 运行结果: 代码实现2 – 动态分配方式 运行结果: 代码说明: 注意点: 动态顺序表(SeqList) 静态顺序表(SqList) 二、LocateE…
-
05 – 第二章数据结构线性表 – 顺序表代码实现(插入和删除操作)
线性表的基本操作(ListInsert&ListDelete) 1、ListInsert(&L,i,e) 功能:1、插入操作实现,在表L中的第i个位置上插入指定元素e。2、静态分配方式插入操作 定义插入操作关键步骤1. 检查表是否已满(静态分配的核心限制)2. 检查插入位置有效性(i的合法范围:1 ≤ i ≤ length+1)3. 从最后一…
-
04 – 第二章数据结构线性表 – 顺序表代码实现(初始化线性表和销毁操作)
线性表的基本操作(InitList&DestroyList) 1、InitList(&L) 功能:初始化表,构造一个空的线性表L,分配空间 运行结果: 2、DestroyList(&L) 销毁操作。销毁线性表,并释放线性表L所占用的内存空间 运行结果: 注意点: 操作符 L 的类型 示例代码 等价写法 -> 结构体指针 SeqL…
-
03 – 第二章数据结构线性表 – 顺序表
2.1 线性表的定义和基本操作 2.1.1 线性表的定义 2.1.2 线性表的基础操作 InitList(&L) 初始化表。构造一个空的线性表L,分配内存空间。 DestroyList(&L) 销毁操作。销毁线性表,并释放线性表L所占用的内存空间 ListInsert(&L;i,e) 插入操作。在表L中的第i个位置上插入指定元素e。 …
-
02 – 第一章数据结构绪论
2.1 数据结构的基本概念 举例需要理解几点: 2.2 数据结构的三要素 2.2.1. 数据的逻辑结构 逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。 逻辑结构包括: 2.2.2. 数据的存储结构(物理结构) 如何用计算机表示数据元素的逻关系? 存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构。 存储结构包括: 2.2.3. 数据…
-
01 – 数据结构引言
为什么数据结构和算法如此重要? 因为:程序=数据结构+算法 数据结构是一组数据的存储结构和组织方式,使得该组数据便于访问、修改、存储。 算法是操作数据的一组方法,解决问题的一系列步骤。