数据结构与算法
- 前言
- 一、数据结构的基本概念
-
- 1.数据,数据元素和数据集合
- 2.数据的逻辑结构
- 3.数据的存储结构
- 4.对数据的操作
- 5.数据类型于抽象数据类型
- 二、算法
-
- 1.什么是算法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、数据结构的基本概念
-
- 1.数据,数据元素和数据集合
- 2.数据的逻辑结构
- 3.数据的存储结构
- 4.对数据的操作
- 5.数据类型于抽象数据类型
- 二、算法
-
- 1.什么是算法
前言
提示:求大佬带
提示:以下是本篇文章正文内容,下面案例可供参考
一、数据结构的基本概念
1.数据,数据元素和数据集合
- 数据:数据,是一种符号(文字、数字、语义符号、图形等)信息媒介;
- 数据元素:数据的基本单位,表示数据(信息)中的一组数据
- 数据项:数据元素中的基本单位
- 关键字:标识数据元素的数据项(类似于数据库中的候选码)
- 主关键字:可以唯一标识数据元素的关键字(类似于数据库中的主键)
ps:数据元素可以是一个单一的原子项,也可以由多个数据项组成
(原子项:)
2.数据的逻辑结构
- 数据结构:由N(N>=0)个数据元素组成的有限集合
- 数据的结构:数据的逻辑结构,数据的存储结构和对数据的操作
- 数据的逻辑结构:是数据元素之间的逻辑结构。数据的逻辑结构主要分为种。一是线性结构,二是树结构,三是图结构。
- 线性结构:由n个相同的数据类型的数据元素组成的有限数列,除去首尾两个元素,其他元素都有前驱元素和后驱元素。也称顺序关系。
- eg:将数据元素有顺序的连接起来(不可重复连接)。比如:数组
- 树结构: 数据元素是结点。边表示层次关系。
- eg:族谱(从爷爷辈开始)
- 线性结构是树的特例
- 图由顶点集合和边集合组成的数据结构,图中的数据元素称为顶点,顶点间的关系称为边。图对数据元素之间的关系没有限制。
- 例如:
- 树是图的特例,线性结构是树的特例
- 线性结构:由n个相同的数据类型的数据元素组成的有限数列,除去首尾两个元素,其他元素都有前驱元素和后驱元素。也称顺序关系。
3.数据的存储结构
- 顺序存储结构:连续的存储。确定大小并开辟一个连续的空间。(类型必须相同)。确定大小:(相同类型的数据类型的byte位是确定的,byte位✖大小就是开辟空间的大小),通过下标访问(下标×byte位+下标为0的地址得到要访问的数据的地址)。比如:数组
- 链式存储结构:离散存储(数据你想放那就放那),每一个数据元素就是一个结点,结点由数据域,地址域组成。数据域存储数据,地址域存储下一个结点的地址。首位连接就可以组成线性表。
- 链式存储
4.对数据的操作
- 初始化
- 判断是否为空
- 存取
- 遍历
- 统计数据元素的个数
- 插入
- 查找
- 深拷贝
- 排序
- 比较相等
5.数据类型于抽象数据类型
- 数据类型: 具有相同逻辑意义的一组值的集合,以及定义在中集合上的运算和操作集合。
- 抽象数据类型: 自定义的一种数据类型,对其中的运算和操作只给出抽象定义,而不去实现。
- 数据抽象: “定义于实现相分离”,将一种类型的数据与逻辑含义与具体实现相分离。
- 声明抽象数据类型
- 参考:参考博客
二、算法
1.什么是算法
- 算法: 是一个有穷规则的集合,确定了解决某一类问题的操作序列。
- 特征: 有穷性,确定性,可行性,输入,输出
- 算法设计的五个目标: 正确性,健壮性,高时间效率,高空间效率,可读性
什么是算法:参考博客
算法时间复杂度:参考博客
算法的空间复杂度:参考博客