1.数据
(1)是能输入计算机且能被计算机处理的各种符号的集合。
(2)信息的载体
(3)是对客观事物符号化的表示
(4)能够被计算机识别,存储和加工
(5)包含:
数值型数据:整数,实数等。(可以进行加减乘除,数值运算的)
非数值型数据:文字,图像,图形,声音等。
2.数据元素和数据项
(1)数据元素:数据的基本单位。(例如学生表中的一个学生的所有信息)
也可以称为记录,结点,或者顶点。
(2)数据项:构成数据元素的最小单位。(例如学生表中一个学生的一个属性)
一个数据元素由若干个数据项组成。
数据(学生表)>数据元素(个人记录)>数据项(学号,姓名)
(3)数据对象:性质相同的数据元素的集合,是数据的一个子集。
例如:整数的数据对象为N={0,+1,-1,+2,-2.....}
(4)数据元素与数据对象与数据的关系
数据元素:组成数据的基本单位
与数据的关系:是集合的个体
数据对象:性质相同的数据元素的集合
与数据的关系:集合的子集
3.数据结构
(1)数据元素不是孤立存在的,他们之间存在一种关系,数据元素相互之间的关系称为结构。
(2)相互之间存在一种或者多种特定关系的数据元素集合。
(3)数据结构是带结构的数据元素的集合。
内容:
(1)逻辑结构:数据元素之间的逻辑关系
(2)数据的物理结构(存储结构):数据元素及其关系在计算机内存中的表示(映像)
(3)数据的运算和实现:对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现。
4.数据结构的两个层次
(1)逻辑结构
描述数据元素之间的逻辑关系
与数据的存储无关,独立于计算机
从具体的问题当中抽象出来的数学模型
(2)物理结构
数据元素及其关系在计算机存储器中的结构(存储方式)
是数据结构在计算机内部的表示
(3)逻辑结构与存储结构的关系
存储结构是逻辑关系的映像与元素本身的映像。
逻辑结构是数据结构的抽象,存储结构是数据结构的实现
两者结合起来就建立了数据元素之间的结构关系
5.逻辑结构的种类
第一种划分方式--按结构划分
(1)线性结构
有且只有一个开始结点和一个终端结点,而且所有的结点都最多只有一个总结前趋和一个直接后继。
例如:线性表,栈,队列,串。
(2)非线性结构
一个结点可能有多个直接前趋和直接后继
例如:树,图
第二种划分方式--4种基本逻辑结构
(1) 集合结构:结构中的数据元素之间除了同属于一个集合的关系外,无任何关系。
(2) 线性结构:结构中的数据元素之间存在着一对一的线性关系。
(3) 树形结构:结构中的数据元素之间存在着一对多的层次关系。
(4) 图形结构(网形结构)结构中的数据元素之间存在着多对对的任意关系。
6.存储结构
(1)顺序存储结构:
用计算机中一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置来表示。(c语言当中的数组及实现顺序存储结构)
(2)链式存储结构
用计算机当中一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示。
(c语言当中用指针来实现链式存储结构)
指针即为地址。在存储该数值(头指针head)的同时存储下一个数值的地址。根据下一个数值的地址,找到下一个数值,依次进行,直到下一个元素的地址为NULL空为止。
(3)索引存储结构
在存储信息的同时,建立附加的索引表(手机通讯录名字里面第一个字的字母开头)
索引表的每一项称为索引项
索引项的一般形式:(关键字,地址)
关键字是唯一标识一个结点的那些数据项
若每个结点在索引表中都有一个索引项,则称该索引表为稠密索引
若一组结点在索引表中只对应一个结点,则称该索引表为稀疏索引
(4)散列存储结构
根据结点的关键字直接计算出该结点的存储地址。
主要在查找这一章节讲述。