程序设计 = 数据结构 + 算法
数据结构基础概念
数据
是一种描述客观事物的符号,包括数值类型和非数值类型
数据需要满足两个前提:
1:可以输入到计算机中;
2:能够被计算机程序处理
数据元素
也叫记录,是组合数据,有一定意义的基本单位
数据项
一个数据元素可以由若干个数据项组成
数据项是数据不可分割的最小单位
数据对象
是性质相同的数据元素的集合,是数据的子集
联系
数据项 < 数据元素 < 数据对象 < 数据
以人做例子:
人的眼睛,鼻子,嘴巴就是不可分割的数据项,它们共同组成了人这个数据元素,具有相同数据项和相同数量的数据元素也就元素对象,通常称数据对象为数据
初始数据结构
数据结构定义
是相互之间存在一种或多种特定关系的数据元素的集合(很抽象)
简单来说:结构就是关系,指各个组成部分相互搭配和排列的方式
结构类型
逻辑结构
- 集合结构:数据元素同属于一个集合,类比数学题中的集合
- 线性结构:数据元素之间是一对一关系
- 树形结构:数据元素之间存在一对多层次关系
- 图形结构:数据元素是多对多关系
物理结构
指数据的逻辑结构在计算机的存储形式,也叫存储结构
有一层关系需要理清楚:数据是数据元素的集合,存储结构就是将数据元素存储到计算机的存储器中,存储器主要针对内存而言,因为像硬盘,磁盘等外部存储器的数据组织通常是用文件结构来描述
存储结构的形式分为:
- 顺序存储结构
把数据元素存放在地址连续的存储单元里
典型:数组
类比:排队,不允许插队,按序排队
因为顺序存储结构不够灵活,排队的时候可能出现有人等的不耐烦,就不排离开,整个结构时刻处于变化之中,所以就出现了可以不用按顺序的链式存储结构
- 链式存储结构
把数据元素存放在任意的存储单元里,这组存储单元可以连续,也可以不连续
链式存储并不具有逻辑关系,所以为了能够找到数据位置,需要用一个指针存放数据元素的地址
逻辑结构是面向问题的,而物理结构是面向计算机的,其目标就是将数据及其逻辑关系存储到计算机内存中
数据类型
是指一组性质相同的值的集合及定义在此集合上的一些操作的总称
- 抽象
提取事物具有普遍性的本质,忽视非本质的细节,对具体事物的一个概括
- 抽象数据类型(ADT)
是指一个数学模型及定义在该模型上的一组操作