先来看个都学过的公式 程序设计 = 数据结构 + 算法
1. 什么是数据结构
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
在计算机中,数据元素是具有内在联系的数据集合。数据元素间存在的一种或多种特定关系,就是数据的组织形式。
为编写"好"的程序,必须分析待处理对象的特性及各处理对象间存在的关系。这就是研究数据结构的意义。
2. 逻辑结构与物理结构
逻辑结构:是指数据对象中数据元素间的相互关系。
个人理解,就是将要处理的所有数据,根据其相似的特性,抽象成统一的方便处理的结构。
(1) 集合结构:数据元素除了同属于一个集合外,没有其他关系。
(2) 线性结构:数据元素间是一对一的关系
(3) 树形结构:数据元素间存在一对多的关系
(4) 图形结构:数据元素是多对多的关系
逻辑结构是针对具体问题的,是为了解决某个问题,在对问题理解的基础上,选择一个合适的数据结构表示数据元素间的逻辑关系。
物理结构:也可以叫存储结构,是指数据的逻辑结构在计算机中的存储形式。
(1) 顺序存储结构:是把数据元素存放在地址连续的存储单元里,
(2) 链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。需要用一个指针存放数据元素的地址,这样可以通过地址找到关联元素的位置。
3. 抽象数据类型
数据类型是按照值的不同进行划分的。在高级语言中,每个变量、常量和表达式都有各自的取值范围。类型就用来说明变量或表达式的取值范围和所能进行的操作。
计算机中,内存不是无限大的,要根据实际情况,选择合适的数据类型进行运算。
抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性抽象数据类型把实际生活中的问题分解为多个规模小且容易处理的问题,然后建立一个计算机能处理的数据模型,并把每个功能模块的实现细节作为一个独立的单元,从而使具体实现过程隐藏起来。
其实就是面向对象的特点:抽象、封装、继承、多态。