数据结构研究的是什么:分清数据的内在联系,合理的组织数据,建立数学模型,对其有效处理,从而设计出高效的算法。总的来说就是算法+数据(结构)=程序。(这也是我们为什么要研究)
引入:数据结构主要研究的是非数值计算问题,非数值计算问题无法用数学方程建立数学模型【对于平时研究的那些什么用计算机进行全球天气预报,需要求解各种微分方程问题,数据结构不会研究该类型问题,所以计算机又是最简单的一门学科(相对于其他理工学科)】
但是具体怎样是数据结构,下面通过三个实际例子说明:
一、学生学籍管理系统(线模型:1对1对1)
就是日常生活中我们所利用的信息登记表格,记录每个学生的学号,姓名,户口的信息,从上往下依次排列,乘一种线性关系,同时这张表格就是我们建立的数学模型。(每个研究对象之间独立)
二、人机对弈模型(树模型:1对n)
我们平时下的井子棋,每下一步棋后,下一步就会有更多的结果,人机博弈的·数学模型就是如何用树结构表示棋盘和棋子,算法就是博弈的规则和策略。(一种研究对象之间有一种关系)
三、最短路径问题(图模型:n对n)
从城市A到城市B有多条线路,但每条线路交通费不同,为找出最少费用路线,将各城市点话,画出各城市之间费用,用细线长短或者标数值表示出来,找出权值最小路劲即可(多个研究对象之间有多个关系)
总结:研究以上数据之间关系,找出其数学模型的过程中,不再运用到数学方程。简而意之就是研究数据的关系,就是数据结构。
基本概率和术语
数据:各种数字,图形,声音动画经过特殊编码定义后的数据。
数据元素:数据的基本单位(也称为元素和记录),就是特指其中的数字和图形,声音这些以上的一种,例如以上井字棋的一中结果,或者表格栏中的一排(好比是一个集合)
数据项:数据元素的基本单位,例如一排表格中的学号,姓名中一种。
数据对象:性质相同的数据元素的集合,例如整数集合与分数集合之间,学生信息表中一个学生的记录
与小区用户登记表中一个用户信息的登记
数据结构的定义:
相互之间存在一中或多种特定关系的数据元素的集合,简单来说就是带结构的数据元素的集合
一、逻辑结构:从逻辑关系上描述数据,与数据的存储无关
四种结构:1.集合结构2.线性结构3.树结构4.图结构
二、存储结构:
顺序存储结构:例如数组
链式存储结构:无需像顺序存储结构那样要求所有的元素依次连续存放在,但为了表示借点之间的关系需要加指针字段,用于存放后面元素位置