数据结构与算法基础
基本框架(程序=数据结构+算法)
一:数据结构的基本概念
二:基本的数据结构
1线性结构
(1)线性表
(2)栈和队列
(3)串
(4)数组和广义表
2非线性结构
(1)树
(2)图
三:基本的数据处理技术
(1)查找技术
(2)排序技术
第一章:绪论
1.1数据结构的研究内容
1.1.1
数据结构是一门研究非数值计算的程序设计中计算机的操作对象以及他们之间的关系和操作的学科
非数值计算:描述非数值计算问题的数学模型不是数学方程,而是诸如表、树和图之类的具有逻辑关系的学科
1.2基本概念和术语
1.2.1
数据(Data)可以输入计算机且能被计算机处理的各种符号的集合
-信息的载体
-是对客观事物符号化的表示
-能够被计算机识别、存储和加工、
-包括
-数值型的数据:整数、实数
-非数值型的数据:文字、图像、图形、声音等
数据元素(Data Element)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理
-也简称为元素、或称为记录、结点或顶点
-一个数据元素可由若干个数据项组成
数据项(Data Item)构成数据元素不可分割的最小单位
三者之间的关系:数据>数据元素>数据项
Eg:学生表>个人记录>学号、姓名...
数据对象(Data Object)是性质相同的数据元素的集合,是数据的一个子集
1.2.2
数据结构(Data Structure)
-数据元素不是孤立存在的,他们之间存在着某种关系,数据元素相互之间的关系称为结构
-是指相互之间的存在一种或多种特定关系的数据元素集合
-或者说,数据结构是带结构的数据元素的集合
内容
-数据元素之间的逻辑关系,也称为逻辑结构
-数据元素及其关系在计算机内存中的表示(又称为映像),称为数据的物理结构或数据的存储结构
-数据的运算和实现,即对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现
1.2.3
数据结构的两个层次
逻辑结构
-描述数据元素之间的逻辑关系
-与数据的存储无关,独立与计算机
-是从具体问题抽象出来的数学模型
物理结构(存储结构)
-数据元素及其关系在计算机存储器中的结构(存储方式)
-是数据结构在计算机中的表示
两者之间的关系
-存储结构是逻辑关系的映像与元素本身的映像
-逻辑结构是数据结构的抽象,存储结构是数据结构的实现
-两者综合起来建立了数据元素之间的结构关系
1.2.4
逻辑结构的种类
划分方法一
(1)有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继
eg:线性表、栈、队列、串
(2)非线性结构
一个结点可能有多个直接前趋和直接后继
eg:树、图
划分方法二——四种基本逻辑结构
集合结构:结构中的数据元素除了同属于一个集合的关系外,无其它任何关系
线性结构:结构中的数据元素之间存在着一一对应的线性关系
树状结构:结构中的数据元素之间存在着一对多的层次关系
图状结构或网状结构:结构中的数据元素之间存在着多队多的任意关系
1.2.5
存储结构的种类
顺序存储结构
-用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置来表示
-C语言中用数组来实现顺序存储结构
链式存储结构
-用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示
-C语言中用指针来表示链式存储结构
索引存储结构
-在存储结点信息的同时,还建立附加的索引表
-索引表中的每一项称为一个索引项
-索引项的一般形式是:(关键字,地址)
-关键字是能唯一标识一个结点的那些数据项
散列存储结构