第二章数据结构基础
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章数据结构基础
2.1 基本概念
程序 = 算法 + 数据结构
也就是说,计算机按照程序所描述的算法对某种结构的数据进行加工处理。
1.数据结构
数据:在计算机领域,指能够被计算机输入、存储、处理和输出的一切信息。
数据项:是数据的最小单位,有时也称为域(field)。
数据记录:是数据处理领域组织数据的基本单位,它由数据项组成。
数据元素:是数据集合中相对独立的单位,也称结点。它和数据是相对而言的(如一条记录相对于所在文件被认为是数据元素,而它相对于所含的数据项又被认为是数据)。
数据结构:是描述一组数据元素及元素间的相互关系的。
逻辑结构:是指数据元素之间抽象化的相互关系。
存储结构:或称物理结构,是数据的逻辑结构在计算机存储器中的存储形式。
线性结构:每个结点有且只有一个前驱结点和一个后继结点(第一和最
后一个结点除外)
逻辑结构树型结构:每个结点有且只有一个前驱结点(树根结点除
非线性结构外),但可以有任意多个后继结点。
每个结点可以有任意多个前驱结点和任意多个后
继结点
数据结构顺序存储结构:将数据结构的数据元素按某中顺序存放在计算机存储器的连
续存储单元中。其结构简单,可节省存放指针的空间,但需要连续
的存储空间,当数据元素的数目不确定时,会造成存储空间的闲置。
链接存储结构:为数据结构的每个结点元素附加一个数据项,其中存放
一个与其相邻接的元素的地址(指针),通过指针找到下一个
相关元素的实际存储地址。每个结点由数据域和指针域组成。
存储结构其存储空间不必连续,在进行插入、删除操作时不必移动结点,
但结点指针要占用额外的存储空间。
索引存储结构:将全部记录分别存放在存储器的不同位置,系统为整个
记录建立一张索引表,表中登记了每条记录的长度、逻辑记录
号和在存储器中位置。通过索引表来访问记录。
散列存储结构:在记录的存储位置和它的关键字之间建立一个确定的对
应关系,使每个关键字和结构中一个唯一的存储位置相对应。
由关键字作某种运算后直接确定元素的地址。
在数据的逻辑结构中,树型结构(1:N)是图型结构(M:N)的特例(M=1),
线性结构(1:1)是树型结构(1:N)的特例(N=1)。
一种数据结构可以表示成一种或多种物理结构。在数据处理过程中,一个恰当的数据结构起着非常重要的作用。
2.算法
算法:即解决特定问题的方法。
数值算法:是解决数值问题的算法,主要进行算术运算,如:求解代数方程、求算法种类解数值积分等。早期的计算机主要用于数值计算。
非数值算法:是解决非数值问题的算法,主要进行比较和逻辑运算,如:排序、查
找、插入、删除等。随着计算机技术的发展,非数值计算的应用越来越
广。
有穷性:在执行有限步之后必须终止
确定性:所给出的每一计算步骤必须是精确定义的
算法准则可行性:要执行的每一计算步骤都可在有限时间内完成
输入:一般应具有0个或多个输入信息,它是算法所需的初始数据
输出:一般应具有0个或多个输出信息,它是算法对输入信息的运算结果
正确性:指在合理的数据输入下,能在有限的运行时间内得到正确的结果。
算法评价运行时间(时间复杂性):指一个算法在计算机上运算所花费的时间
占用的存储空间(空间复杂性):指一个算法在计算机存储器中所占用的存储空间
简单性:指容易验证其正确性,且便于编写、修改、阅读和调试
3.P ascal语言简介
整型 integer 一个整型数据占用2个字节的存储单元
实型 real 一个实型数据占用4个字节的存储单元
简单类型字符型 char 一个字符型数据占用1个字节的存储单元
布尔型 boolean 一个布尔型数据(false或true)占用1个字节的存储单元
数组:数组中的元素在位置上是顺序排列的,存储结构是顺序存储结构,逻辑
结构为线性结构。
(1)数据类型记录:记录中的成分在位置上是顺序排列的,存储结构是顺序存储结构,
逻辑结构为线性结构。
结构类型集合:集合与元素的位置无关,存储结构是顺序存储结构,逻辑结构是
关系为空(即不存在次序关系)的结构
文件:文件中的成分在位置上是顺序排列的,但逻辑结构和存储结构可
以有多种不同结构。
指针类型是以存储单元的地址作为其值的一种数据类型,它也是一种整体变量,
系统为指针变量分配一个固定的存储单元,一般为2个字节。指针类型
的定义为: ↑类型标识符
数组、记录、集合之间的区别
(2)语句
赋值语句:变量名:=表达式;
转向语句: goto 语句标号;
调用过程语句:过程名(参数表);
退出循环语句: exit;
返回语句:return;
出错处理语句:error(字符串);
复合语句: begin语句1;语句2;…;语句n end;
条件语句:if条件then语句1 [else语句2];
情况语句:case变量名of
常量1:语句1;
常量2:语句2;
……
end;
for循环语句:for变量名:=初值to [downto]终值do语句;
while循环语句:while条件do语句;
repeat循环语句: repeat一组语句until条件;