数据结构_CH01_数据结构研究

数据结构_CH01_数据结构研究

1计算机研究的内容

1.1数值型

1.1.1具体问题抽象为数学模型

分析问题——>找到操作对象——>找到操作对象之间的关系——>用数学语言描述

1.1.2设计算法
1.1.3编程、调试、运行

特点是:数据元素间的关系简单,计算复杂。因此我们着重关注算法。

1.2非数值型

1.2.1线性表

如学生管理系统就是研究的非数值型
在这里插入图片描述
操作对象:每位学生的信息
增删改查:增删改查
操作对象之间的关系:线性关系
数据结构:线性数据结构,线性表
诸如此类的如通讯录、图书管理系统等,
操作对象是若干行的记录,操作方法是增删改查。

1.2.2树

如井字棋游戏:
在这里插入图片描述
操作对象:各棋局状态
操作方法:派生(即选择某一策略使得棋局状态发生改变)

此外,磁盘的父目录和子目录也是一种树结构。(非线性)

1.2.3网状图

如地图求最短路径
在这里插入图片描述
操作对象:这些点和路
操作方法:找某一条通路:如最短路径

综上特点:表、树、图:无法用数学方程表达,数学模型之间有逻辑关系。数据结构是一门研究非数值型数据的学科。

2、基本概念

数据
数据元素
数据项
数据对象
结构
数据结构

2.1数据

能输入计算机并且能被计算机处理的各种符号的集合
分为数值型数据和非数值型数据:
数值型:整数、小数
非数值型:文字、图像、声音

2.2数据元素

数据的基本单位,在计算机中作为一个整体被考虑和处理:
在这里插入图片描述

如这里的{60214201,‘杨阳’,‘男’,‘安徽’,‘计算机科学与技术’}就是一个数据元素,作为一个整体考虑。简称元素、顶点、结点、记录。

或者
在这里插入图片描述
这里的某一个状态也是一个数据元素

或者
在这里插入图片描述
这里的某个点也是一个数据元素。

2.3数据项

构成数据元素的不可分割的最小单位
EXCEL的一个格子。

2.4数据对象

性质相同的数据元素的集合,是数据的一个子集
在这里插入图片描述

2.5结构

数据元素之间的关系

2.6数据结构

相互之间存在一种或多种特定关系的数据元素的集合

2.6.1数据结构包含的内容
逻辑结构
存储结构(物理结构、映像)
数据间的运算

在这里插入图片描述
有点类似于数据库中学的三级模式两层映像。

2.6.2逻辑结构的分类

方式一:

线性
非线性

线性:有且只有一个开始和终端结点,并且所有结点最多只有一个直接前驱和一个直接后继
线性表、栈、队列、栈

非线性:一个结点有多个直接前驱或直接后继
如:树、图

方式二:四类基本结构

集合:无关系
线性:1对1
树:1对多
图:多对多
2.6.3存储结构的分类
顺序
链式
索引
散列

顺序

用一组连续的内存存储单元,依次存储数据元素。数据元素之间的逻辑关系,由内存存储位置来表示。C语言中用数组来描述顺序存储

链式
不是连续存储单元,而是随机(也可能恰好连续)存储,再用指针描述逻辑结构。存储一个元素本身,还存储下一个元素的地址。
在这里插入图片描述
在这里插入图片描述
索引
索引存储表。如通讯录
在这里插入图片描述

散列
根据结点的关键字直接计算出该节点的存储地址。
在这里插入图片描述

3数据类型和抽象数据类型(ADT)

数据类型:相同类型值的集合以及定义在值上的操作。

高级语言中,每个常量、变量或表达式的出现,必须声明他的类型
在这里插入图片描述
一些基本数据结构可以用如字符串、数组来表述
而如栈、队列、串等不可以这样描述。

3.1数据类型的作用

在这里插入图片描述

3.2抽象数据类型

3.2.1def

是指一个数学模型以及定义在此数学模型上的一组操作。它通常是对数据的某种抽象,定义了数据的取值范围及其结构形式,以及对数据操作的集合。

逻辑结构
抽象操作

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

3.2.2特点

1、数据抽象。用ADT描述程序处理的实体时,强调的是其本质的特征、其所能完成的功能以及它和外部用户的接口(即外界使用它的方法)
比如:汽车的方向盘是一个接口,档是一个接口。我们只需要知道档怎么用,不需要知道档内部是怎么造的。

2、数据封装。将实体的外部特性和其内部实现细节分离,并且对外部用户隐藏其内部实现细节,它包含两层含义:
①将数据和其行为结合在一起,形成一个不可分割的独立单位;
②信息隐藏,即尽可能隐藏数据内部细节,只留有限的对外接口形成一个边界,与外部发生联系。封装的原则使得软件错误能够局部化,大大降低排错的难度,便于软件的维护。

3、继承性。数据封装使得一个类型可以拥有一般类型的数据和行为,即对一般类型的继承。若特殊类型从多个一般类型中继承相关的数据和行为,则为多继承。

4、多态性。多态性是指在一般类型中定义的数据或行为被特殊类型继承后,具有不同的数据类型或呈现出不同的行为。例如,“苹果”是“水果”的子类,它可以有“水果”的一般“吃”法,但其本身还可以有别的多种“吃法”。

3.3.3基本操作的定义

在这里插入图片描述
参数表可以细分:
赋值参数:只为操作提供输入值
引用参数:用&链接,除了可以提供输入值外,还将返回操作结果。

比如:

G = scan(G,n)可以写成
scan(&G,n)

初始条件
执行操作前数据结构和参数应该满足的条件,如果不满足则操作失败,如果初始条件为空,则忽略

操作结果
正常操作后返回什么结果,或者数据结构状态发生什么样的变化。

在这里插入图片描述

4、总结

在这里插入图片描述

  • 28
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值