408-数据结构

数据结构在学什么?
1.用代码把问题信息化
2.用计算机处理信息
在这里插入图片描述
ch1
在这里插入图片描述
数据:数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
ch2
在这里插入图片描述

//假设线性表的元素类型为ElemType,则静态分配的顺序表存储结构描述为
#define MaxSize 50				//定义线性表的最大长度
typedef struct {ElemType data[MaxSize];		//顺序表的元素int length;					//顺序表的当前长度
}SqList;						//顺序表的类型定义//动态分配的顺序表存储结构描述为
#define InitSize 100			//表长度的初始定义
typedef struct {ElemType* data;				//指示动态分配数组的指针int MaxSize, length;		//顺序表的最大容量和当前个数
}SeqList;						//动态分配数组顺序表的类型定义
//C的初始动态分配语句为
L.data = (ElemType*)malloc(sizeof(ElemType) * InitSize);
//C++的初始动态分配语句为
L.data = new ElemType[InitSize];
#define MaxSize 50
//静态分配的顺序表,定义一个数组,它包括数据类型和数据长度
typedef struct {int data[MaxSize];int length;				//表示数据表的当前长度
}SqList;//基本操作——初始化一个顺序表
void InitList(SqList& L) {//for (int i = 0; i < MaxSize; i++)//	L.data[i] = 0;L.length = 0;
}
int main() {SqList L;InitList(L);//尝试“违规”打印整个data数组for (int i = 0; i < MaxSize; i++)//i < L.lengthprintf("data[%d] = %d ", i, L.data[i]);return 0;
}
#define InitSize 10
//动态分配的顺序表,定义一个指针,它包括数据类型,但需要分配数据长度
typedef struct {int* data;int MaxSize, length;	//表示数据表的最大长度和当前长度
}SqList;void InitList(SqList& L) {L.data = (int*)malloc(sizeof(int) * InitSize); //开辟内存空间L.MaxSize = InitSize;L.length = 0;
}void IncreaseSize(SqList& L, int len) {int* p = L.data;		//临时变量p暂存L.data的内容L.data = (int*)malloc(sizeof(int) * (L.MaxSize + len)); //开辟新的内存空间for (int i = 0; i < L.length; i++) {L.data[i] = p[i];	//暂存的的内容还给L.data}free(p);				//释放p的内存空间
}int main() {SqList L;InitList(L);IncreaseSize(L, 5);return 0;
}
bool ListInsert(SqList& L, int i, int e) {//在第i个位置插入元素e,下标为i-1if (i<1 || i> L.length + 1 || L.length == MaxSize) {return false;}for (int j = L.length; j >= i; j--) {L.data[j] = L.data[j - 1];}L.data[i - 1] = e;L.length++;return true;
}bool ListDelete(SqList& L, int i, int& e) {if (i<1 || i>L.length) {return false;}e = L.data[i - 1];for (int j = i; j < L.length - 1; j++) {//下标为i-1的元素不要,从i开始逐个前移L.data[j - 1] = L.data[j];}L.length--;return true;
}int GetElem(SqList L, int i) {return L.data[i - 1];
}int LocateElem(SqList L, int e){for (int i = 0; i < L.length; i++) {if (L.data[i] == e)return i + 1;				//返回的是位序,不是下标}return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go语言开发桌面应用基础框架(wails v3)-开箱即用框架

前言 本文是介绍如何集成好了Wails3开发框架以及提供视频教程&#xff0c;当你需要桌面开发时&#xff0c;直接下载我们基础框架代码&#xff0c;开箱即用不用配置开发需要依赖。 为什么使用v3版本&#xff0c;主要是v3新增的功能 ​支持多个窗口&#xff1a;在单个应用程序…

Git 与 Git常用命令

Git 是一个开源的分布式版本控制系统&#xff0c;广泛用于源代码管理。与传统的集中式版本控制系统不同&#xff0c;Git 允许每个开发者在本地拥有完整的代码库副本&#xff0c;支持离线工作和高效的分支管理。每次提交时&#xff0c;Git 会对当前项目的所有文件创建一个快照&a…

尚硅谷爬虫note004

一、urllib库 1. python自带&#xff0c;无需安装 # _*_ coding : utf-8 _*_ # Time : 2025/2/11 09:39 # Author : 20250206-里奥 # File : demo14_urllib # Project : PythonProject10-14#导入urllib.request import urllib.request#使用urllib获取百度首页源码 #1.定义一…

老WinForm中一个执行文件使用SQLite数据库

EF6在老WinForm中停止更新了&#xff0c;但如果只是在win10上面使用&#xff0c;老的.net Framework 4.8框架有一个优势&#xff0c;编译后的执行文件很小。还有一些老类库也只能在老的.net Framework 4.8框架使用&#xff0c;所以微软还是保留了老的.net Framework 4.8框架。 …

diff算法简析

diff算法的核心目的是用最少的步骤找出新旧节点的差异&#xff0c;从而更新视图。 diff算法是一种通过同层的树节点进行比较的高效算法&#xff0c;探讨的是虚拟DOM树发生变化后&#xff0c;生成DOM树更新补丁的方式。对比新旧两株虚拟DOM树的差异&#xff0c;将更新补丁作用于…

19.3 连接数据库

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 ​​​​​​​需要北风数据库的请留言自己的信箱。 连接数据库使用OleDbConnection&#xff08;数据连接&#xff09;类&#xff…

Redis实现分布式锁

一、使用分布式锁的背景是什么 1、如果你公司的业务&#xff0c;各个应用都只部署了一台机器&#xff0c;那么完全用不着分布式锁&#xff0c;直接使用Java的锁即可 2、可是当你们的业务量大&#xff0c;多台机器并发情况下争夺一个资源的时候&#xff0c;就必须要保证业务的…

变化检测相关论文可读list

一些用得上的&#xff1a; 遥感变化检测常见数据集https://github.com/rsdler/Remote-Sensing-Change-Detection-Dataset/ 代码解读&#xff1a;代码解读 | 极简代码遥感语义分割&#xff0c;结合GDAL从零实现&#xff0c;以U-Net和建筑物提取为例 对本list的说明&#xff1a;…

docker 逃逸突破边界

免责声明 本博客文章仅供教育和研究目的使用。本文中提到的所有信息和技术均基于公开来源和合法获取的知识。本文不鼓励或支持任何非法活动&#xff0c;包括但不限于未经授权访问计算机系统、网络或数据。 作者对于读者使用本文中的信息所导致的任何直接或间接后果不承担任何…

cv2.Sobel

1. Sobel 算子简介 Sobel 算子是一种 边缘检测算子&#xff0c;通过对图像做梯度计算&#xff0c;可以突出边缘。 Sobel X 方向卷积核&#xff1a; 用于计算 水平方向&#xff08;x 方向&#xff09; 的梯度。 2. 输入图像示例 假设我们有一个 55 的灰度图像&#xff0c;像素…

网络编程 day3

思维导图 以select函数模型为例 思维导图2 对应 epoll模型 应使用的函数 题目 使用epoll函数实现 两个客户端 通过服务器 实现聊天 思路 在原先代码基础上 实现 服务器 发向 客户端 使用客户端在服务器上的 套接字描述符 实现 客户端 接收 服务器…

Java 同步锁性能的最佳实践:从理论到实践的完整指南

目录 一、同步锁性能分析 &#xff08;一&#xff09;性能验证说明 1. 使用同步锁的代码示例 2. 不使用同步锁的代码示例 3. 结果与讨论 &#xff08;二&#xff09;案例初步优化分析说明 1. 使用AtomicInteger原子类尝试优化分析 2. 对AtomicInteger原子类进一步优化 …

Mac之JDK安装

Mac之JDK安装 一.安装 jdk 打开终端输入命令:java -version 查看是否已安装 JDK Oracle 官方下载地址 根据自己Mac 系统安装 查看 Mac 系统&#xff0c;打开中断命令&#xff0c;输入: uname -a Compressed Archive 是压缩文档&#xff0c;下载的是一个 .tar.gz 压缩包 D…

[MySQL]5-MySQL扩展(分片)

随着数据量和用户量增加&#xff0c;MySQL会有读写负载限制。以下是部分解决方案 目录 功能拆分 使用读池拓展读&#xff08;较复杂&#xff09; 排队机制 &#x1f31f;分片拓展写 按业务或职责划分节点或集群 大数据集切分 分片键的选择 多个分片键 跨分片查询 资料…

芯盾时代数据安全产品体系,筑牢数据安全防线

芯盾时代数据安全治理&#xff08;DSG&#xff09;框架&#xff0c;以国家法律法规、行业监管标准、行业最佳实践为依据&#xff0c;从数据安全战略出发&#xff0c;以数据分类分级为支撑&#xff0c;构数据安全管理体系、数据安全技术体系、数据安全运营体系与数据安全监督评价…

腾讯大数据基于 StarRocks 的向量检索探索

作者&#xff1a;赵裕隆&#xff0c;腾讯大数据研发工程师 本文整理自腾讯大数据工程师在 StarRocks 年度峰会上的分享&#xff0c;深入探讨了向量检索技术的原理与应用。此功能已应用到腾讯内部多个场景&#xff0c;引入 StarRocks 后&#xff0c;业务不仅不需要维护多套数据库…

STM32 RTC 实时时钟说明

目录 背景 RTC(实时时钟)和后备寄存器 32.768HZ 如何产生1S定时 RTC配置程序 第一次上电RTC配置 第1步、启用备用寄存器外设时钟和PWR外设时钟 第2步、使能RTC和备份寄存器访问 第3步、备份寄存器初始化 第4步、开启LSE 第5步、等待LSE启动后稳定状态 第6步、配置LSE为…

android studio在gradle的build时kaptDebugKotlin这个task需要执行很久

只修改了一点java代码&#xff0c;kaptDebugKotlin这个任务却执行了3~5分钟。。。

机器学习(李宏毅)——self-Attention

一、前言 本文章作为学习2023年《李宏毅机器学习课程》的笔记&#xff0c;感谢台湾大学李宏毅教授的课程&#xff0c;respect&#xff01;&#xff01;&#xff01; 二、大纲 何为self-Attention&#xff1f;原理剖析self-Attention VS CNN、RNN、GNN 三、何为self-Attenti…

【Java使用Geotools对shp文件进行读取,读取完成之后shp、dbf、shx文件总是被占用,无法删除,如何解决呢?】

Java使用Geotools对shp文件进行读取&#xff0c;读取完成之后shp、dbf、shx文件总是被占用&#xff0c;无法删除&#xff0c;如何解决呢&#xff1f; 问题描述原因分析与问题解决1.直接原因2.解决方案 问题描述 Java使用Geotools对shp文件进行读取&#xff0c;读取完成之后.sh…