重庆大学数据结构第一章绪论
数据结构课件 第一章绪论
在C语言中,用一维数组表示顺序存储结构;用结 构体类型表示链式存储结构。
数据结构的三个组成部分: 逻辑结构: 数据元素之间逻辑关系的描述 D_S=(D,S) 存储结构: 数据元素在计算机中的存储及其逻辑关 系的表现称为数据的存储结构或物理结构。 数据操作: 对数据要进行的运算。
功能。
1. 预定义常量及类型
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -1
数据元素被约定为EntryType 类型,用户需要根据具体情况,
自行定义该数据类型。
2. 算法描述为以下的函数形式:
函数类型 函数名(函数参数表)
开设本课程的背景
《数据结构》是计算机相关专业的一门重要的专业基础课。它主
要研究计算机加工对象的逻辑结构、在计算机中的表示形式以及实现各
种基本操作的算法。它是学习操作系统、编译原理、数据库原理等计算
机专业核心课程的基础,掌握好这门课程的内容,是学习计算机其他相
关课程的必备条件。
本课程讲述的主要内容
本问题是一种典型的树型结构问题,如图11 ,数据与数据成一对多的关系,是一种典型的非 线性关系结构—树形结构。
图1-2 树形结构
特点:
l 在求解过程中,所处理的数据之间具有层次关系,这是我们所
说的树形结构;
l 对它的操作有:建立树形结构,输出最低层结点内容等等。
应用举例3——制定教学计划
在制定教学计划时,需要考虑各门课程的开设顺序。有些课程
绪论 数据结构讲义
性别 男 女 女 男 男 男 女
班号 9901 9902 9901 9902 9901 9902 9901
表中的记录顺序反映了数据元素之间的逻辑关 系, 用学号标识每个学生记录,这种逻辑关系可以表 示为:
<1,8>,<8,34>,<34,20>,<20,12>,
<12,26>,<26,5>
其中,尖括号<ai,ai+1>表示。 元素ai和ai+1之间是相邻的,即ai在ai+1之前,ai+1 在ai之后。
对于head为首结点指针的链表,从head所指结 点开始比较,head->no不等于20,从它的next得到 下 一 个 结 点 的 地 址 , 再 与 下 一 个 结 点 的 no 域 比 较,…,直到某结点的no域等于20,返回其name域。
数据结构的二元组表示
为了更确切地描述一种数据结构,通常采 用二元组表示:
优点:
便于修改,在进行插入、删除运算时,仅需修 改相应结点的指针域,不必移动结点。
缺点:
存储空间的利用率较低。
只能对结点进行顺序存取。
(3)索引存储方法
在存储结点信息的同时,还建立附加的索引表。 索引表中索引项的形式:(关键字,地址),关键字惟 一标识一个结点,地址作为指向结点的指针。 优点:
这种带有索引表的存储结构可以大大提高数据查 找的速度。
} ADT Complex
1.2 算法及其描述
1 什么是算法 2 算法描述
1.2.1 什么是算法
数据元素之间的关系有逻辑关系和物 理关系,对应的操作有逻辑结构上的操作 功能和具体存储结构上的操作实现。
数据结构第1章绪论
例
n 阶矩 阵相乘的算法
矩阵相乘的基本运算:乘法 加法;
For ( i = 1; i<=n; i++ ) For (j = 1; j<=n; j++ )
{ c[ i ][ j ] = 0 ; For (k = 1; k<= n; k++ ) c[ i ][ j ] += a[ i ][ k ] * b[ k ] [ j ] } O(n3) 称为矩阵相乘算法时间复杂度; O(n3)表示矩阵相乘算法执行时间与n3成正比, 即O(n3)与n3 同一数量级 ; 乘法 加法
◆设计 求解问题的方法
◆ 编程 main ( )
{
int len, wide ,area ; scanf (“%d %d%\n”, &l,&w); area=len*wide ; printf (“area=%d”,area);
}
1.1 本课程研究的问题
2)非数值问题
例 2 已知某级学生情况 , 要求分班按入学成绩排列顺序。 学号 00201 00102 00202 00301 姓名 性别 杨润生 男 石磊 男 李梅 女 马耀先 男 出生日期 82/06/01 83/12/21 83/02/23 82/07/12 籍贯 入学成绩 所在班级 广州 561 00计算机2 汕头 512 00计算机1 阳江 532 00计算机2 广州 509 00计算机3
数据结构基本操作的实现: 基本操作在计算机上的实现(方法)
1.3 数据结构的分类及表示
一 常用的数据结构
例
某班学生基本情况登记表,记录了每个学生的学号 姓名 专业 1) 集合 政治 面貌 ,表中的记录是按学生的学号顺序排列的。
结构力学课后习题答案重庆大学
第1章 绪论(无习题)第2章 平面体系的几何组成分析习题解答习题 是非判断题(1) 若平面体系的实际自由度为零,则该体系一定为几何不变体系。
( )(2) 若平面体系的计算自由度W =0,则该体系一定为无多余约束的几何不变体系。
( ) (3) 若平面体系的计算自由度W <0,则该体系为有多余约束的几何不变体系。
( ) (4) 由三个铰两两相连的三刚片组成几何不变体系且无多余约束。
( )(5) 习题(5) 图所示体系去掉二元体CEF 后,剩余部分为简支刚架,所以原体系为无多余约束的几何不变体系。
( )B DACEF习题 (5)图(6) 习题(6)(a)图所示体系去掉二元体ABC 后,成为习题(6) (b)图,故原体系是几何可变体系。
( )(7) 习题(6)(a)图所示体系去掉二元体EDF 后,成为习题(6) (c)图,故原体系是几何可变体系。
( )(a)(b)(c)D习题 (6)图【解】(1)正确。
(2)错误。
0W 是使体系成为几何不变的必要条件而非充分条件。
(3)错误。
(4)错误。
只有当三个铰不共线时,该题的结论才是正确的。
(5)错误。
CEF 不是二元体。
(6)错误。
ABC 不是二元体。
(7)错误。
EDF 不是二元体。
习题 填空(1) 习题(1)图所示体系为_________体系。
习题(1)图(2) 习题(2)图所示体系为__________体系。
习题2-2(2)图(3) 习题(3)图所示4个体系的多余约束数目分别为_______、________、__________、__________。
习题(3)图(4) 习题(4)图所示体系的多余约束个数为___________。
习题(4)图(5) 习题(5)图所示体系的多余约束个数为___________。
习题(5)图(6) 习题(6)图所示体系为_________体系,有_________个多余约束。
习题(6)图(7) 习题(7)图所示体系为_________体系,有_________个多余约束。
数据结构 第一章 绪论
2018/11/26
4
例如,用计算机求数学方程的根
(1)用二分法求方程的根 (2)用迭代法求方程的根
xn 1
1 a ( xn ) 2 xn
特点:用数学方程进行数值运算,称这类问题的数 学模型是数学方程
2018/11/26
5
例1-1 学生选课系统
在教务系统中按所在专业培养方案选修;查询每一门 课有多少同学选修了该课; 查询、统计一下全班同学下 学期的选课情况等。 涉及的操作:选课、课程查询;选课统计等。 如何表示数据,如何对数据进行操作? 为此可以: 建立一张按学生的学号顺序排列的学生信息表和分别 按专业、课程号和班级代号顺序排列的索引表。如图所 示。由这四张表构成的文件就是学生选课系统的数学模 型,计算机的主要操作就是按特定要求对学生信息文件 进行查询。
2018/11/26 8
...
...
如何表示,如何操作? 表示每一种格局; 表示格局之间的派生关系; 给出对奕的算法:从所有儿子格局中找出最有利的格局。 类似问题:计算机中的文件管理、单位的组织机构、家族的 族谱等具有层次关系的数据。
2018/11/26 9
例1-3 交通导游图
以相关标志性地名或景点,抽象成为图中的顶点, 道路抽象为顶点之间的连线。在顶点中可以存放地名 或景点的名称、代号、介绍等信息;连线表示路径, 可以存入路径长度等相关信息。 求:从任何一个景点出发到其他点的最短路程或代 价最小方案等。 此类结构还有教学计划、交通运输、工程施工、网 络布线等。对这种结构的关键操作有遍历(查询),其 他还有插入、删除操作,求关键路径、最小生成树、 最短路径等。
950 1530 1740
1080
2250
成都
《数据结构》第一章重点知识梳理
第一章 绪论
求绝对值 abs(表达式) 求不足整数值 floor(表达式) 求进位整数值 ceil(表达式) 判定文件结束 eof(文件变量) (10)逻辑运算 与运算&&:对于A&&B,当A的值为0时,不在对B求值。 或运算||:对于A||B,当A的值为非0时,不在对B求值。 四、算法和算法分析 1.算法 (1)算法的定义
由于算法的时间复杂度考虑的只是对于问题规模n的增长率,因此在难以精确计算基本操作 执行次数(或语句频度)的情况下,只需求出它关于n的增长率或阶即可。 4.算法的存储空间需求
类似于算法的时间复杂度,以空间复杂度(spacecomplexity)作为算法所需存储空间的量 度,记作S(n)=O(f(n))其中n为问题的规模。
18
的表示。
①元素的表示。计算机数据元素用一个由若干位组合 起来形成的一个位串表示。
图1-1四类基本结构的关系图。
5
第一章 绪论
②关系的表示。 计算机中数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象。 并由这两种不同的表示方法得到两种不同的存储结构:顺序存储结构和链式存储结构。 a.顺序映象的特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。 b.非顺序映象的特点是借助指示元素存储地址的指针(pointer)表示数据元素之间的逻辑
数据元素(dataelement)是数据的基本单位,在计算机程序中通常作为一个整体进行考 虑和处理。
3
第一章 绪论
3.数据对象 数据对象(dataobject)是性质相同的数据元素的集合,是数据的一个子集。
4.数据结构 数据结构(datastructure)是相互之间存在一种或多种特定关系的数据元素的集合。 (1)数据结构的基本结构 根据数据元素之间关系的不同特性,通常有下列四类基本结构: ①集合。数据元素之间除了“同属于一个集合”的关系外,别无其它关系。 ②线性结构。数据元素之间存在一个对一个的关系。 ③树形结构。数据元素之间存在一个对多个的关系。 ④图状结构或网状结构。数据元素之间存在多个对多个的关系。
数据结构绪论
1.3 算法和算法分析
三、算法分析
同一问题可用不同算法解决,而一个算法的 质量优劣将影响到算法乃至程序的效率。算法分析 的目的在于选择合适算法和改进算法。一个算法的 评价主要从时间复杂度和空间复杂度来考虑。
1.3 算法和算法分析
1、时间复杂度
语句频度:某语句执行次数称为该语句的语句频度。
例1-2:用图形表示下列数据结构,并指出它们是属于线性 结构还是非线性结构。
(1) S=(D, R) D={ a, b, c, d, e, f } R={(a,e), (b,c), (c,a), (e,f), (f,d)}
解: 上述表达式可用图形表示为:
b
c
a
e
f
d
此结构为线性的。
例1-3 假设我们需要编制一个事务管理的程序,管理 学校科学研究课题小组的各项事务,则首先要为程序 的操作对象——课题小组设计一个数据结构。假设每 个小组由一位教师、一至三名研究生及一至六名本科 生组成,小组成员之间的关系是:教师指导研究生, 而由每位研究生指导一至两名本科生。
执行n次
(2) for(i=1;i<=n;++i) {++x;s+=x;}
(3)for(j=1;j<=n;++j) 执行n2次
for(k=1;k<=n;++k) {++x;s+=x;}
基本操作“x增1”语句就是所谓的原操作。
1.3 算法和算法分析
一般情况下,算法中基本操作重复执行的次 数是问题规模n的某个函数f(n),算法的 时间量度记作: T(n)=O(f(n))
数据结构第一章绪论(1)PPT教学课件
2020/12/10
7
二、 数据结构( Data Structure )
★ 数据结构是相互之间存在一种或多种特定关系的 数据元素的集合
◆ 数据结构=数据+结构(关系)
2020/12/10
8
数据结构的描述方式
1、逻辑结构
★ 是对数据元素之间逻辑关系(抛开具体的关系 含义以及存储方式等)的描述
◆ 它可以用一个数据元素的集合和定义在此集合 上的几个关系来表示
第一章 绪论
第一节 什么是数据结构 ★ 数据结构(Data Structure)
2020/12/10
1
什么是数据结构
★ 数据结构作为一门独立的课程在国外是从1968年 才开始设立的
◆ 当时,数据结构几乎和图论,特别是和表、树的 理论成为同义语
2020/12/10
2
什么是数据结构
◆ 但对于数据结构的概念,至今尚未有一个被一致 公认的定义
2020/12/10
9
★ 数据结构通常可用图形表示 圆圈表示数据元素,箭头表示关系
数据元素
数据元素
Ei
关系
E i+1
数据结构的描述方式
2、物理结构(存储结构)
★ 数据结构在计算机中的具体表示(representation) 和实现 (implementation)
2020/12/10
11
数据结构的分类 1、按逻辑结构分类 ★ 集合、线性结构、树型结构、图状结构 2、按物理结构分类 ★ 顺序存储结构、链式存储结构、索引存储结构
2020/12/10
12
数据结构的概念
★ 数据结构的形式定义为
◆ 数据结构是一个二元组 Data_Structure=(D,S)
数据结构 第一章 绪论
三、算法和算法分析
1、算法的特性
有穷性
算法在执行有穷步后结束,且每步可在有穷时间内完成 确定性 算法中指令无二义性,且在任何条件下执行路径唯一
可行性
算法中各操作可通过已实现的基本运算执行有限次完成
1、算法的特性
输入
零或多个 输出 一或多个
2、算法设计的要求
正确性
算法应能满足具体问题的需求 可读性 算法应易于阅读和理解
健壮性
输入数据非法时,算法也能适当作出反应或进行处理 高效性 算法执行时间短,占用存储空间少
3、算法的时间复杂度
算法执行效率主要与所用计算机软、硬件及问题规模有
关。 衡量算法效率时,通常在算法中选择一种不可再分解的 基本操作,该操作的重复执行次数应与算法的执行时间成正
比,一般为问题规模n的函数f(n),此时可记算法的时间量
S(n)=O(f(n)),其中 n 为问题的规模。 分析算法空间复杂度时,一般只考虑执行算法所需辅助 空间,但若输入数据所占空间与算法本身有关,则也应计算
在内。
若算法执行所需空间与输入数据有关,则可求最坏情况 下的空间复杂度。
课程说明
1、教学日历 2、成绩评定 平时(50%)=实验(30%)+作业(15%)+考勤(5%) 期末考试:50%
读者信息: 读者编号 姓名
所借图书登录号 002 001
9001 9002
李红 张小林
2、数据元素
数据的基本单位,程序中常作为一个整体考虑和处理。
举例——图书借阅管理系统 图书信息: 登录号 001 002 书名 理论力学 高等数学 借阅者编号 9002 9001
读者信息: 读者编号 姓名
所借图书登录号 002 001
重庆大学在职研究生数据库系统
主要内容☐第1章绪论☐第2章关系模型☐第3章结构化查询语言-SQL☐第4章并发控制☐第5章数据库设计第1章绪论☐基本概念⏹数据库(Database,DB):长期储存在计算机内、有组织的、可共享的数据集合。
⏹数据库管理系统(Database Management System,DBMS):是位于用户与操作系统之间的一层数据管理软件。
常用的大型数据库管理系统包括DB2、SQLSERVER、Oracle、Sybase、Informix等。
☐外模式(External Schema)也称子模式或用户模式,是把现实世界中的信息按照不同用户的观点抽象为多个逻辑数据结构,每个逻辑结构称为一个视图,描述了每个用户关心的数据,即数据库用户看见和使用的局部数据的逻辑结构和特征的描述。
数据库外模式是面向用户的数据库模式。
☐数据库三级模式体系结构的划分,有利于保持数据库的数据独立性。
☐数据的逻辑独立性☐数据的物理独立性☐数据模型:是现实世界数据特征的抽象。
☐概念数据模型:按用户的观点对数据和信息建模。
如:实体联系模型☐逻辑数据模型:按计算机系统的观点对数据建模。
如:层次模型,网状模型,关系模型☐数据仓库☐数据仓库是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,用以支持企业或组织的决策分析处理。
☐分布式数据库系统是逻辑上属于同一系统,物理上分布在用计算机网络连接的多个场地(或叫结点)上的数据集合,且每个场地具有独立处理和自治能力,至少能参加一个全局应用,并由分布式数据库管理系统统一管理。
☐分布式数据库系统的特点:☐数据独立性;☐中和自治相结合的控制机制☐可控冗余☐事务管理的分布性☐存取效率第2章关系模型☐关系模型:用二维表的形式表示实体和实体间联系的数据模型☐关系数据模型由关系数据结构、关系操作和完整性约束三部分组成。
☐数据完整性:是指保护数据库中数据的正确性、有效性和相容性,防止不合语义的数据进入数据库。
数据结构PPT第一章绪论
特性
输入 有0个或多个输入
输出 有一个或多个输出(处理结果)
确定性 每步定义都是确切、无歧义的
有穷性 算法应在执行有穷步后结束
有效性 每一条运算应足够基本
算法定义
事例学习:选择排序问题
明确问题:非递减排序
解决方案:逐个选择最小数据
算法框架:
for ( int i=0; i<n-1; i++ ) { //n-1趟
从a[i]检查到a[n-1];
若最小的整数在a[k], 交换a[i]与a[k];
}
细化程序:程序 SelectSort
void selectSort ( int a[ ], const int n ) {
//对n个整数a[0],a[1],…,a[n-1], 按非递减顺序排序
for ( int i=0; i<n-1; i++ ) {
//交换Elem[j-1]与Elem[j]
exchange = 1;
//做“发生了交换”标志
}
}
−1
渐进时间复杂度:O(f (n)*g (n)) =
−1
− =
2
=1
sum[i] = 0.0;
//数据累加
for ( int j=0; j<n; j++ ) sum[i] += x[i][j];
}
for ( i = 0; i < m; i++ ) //打印各行数据和
cout << “Line ” << i <<
“ : ” <<sum [i] << endl;
数据结构(一)绪论
1.3 算法和算法分析 1.3.1 算法:
是对特定问题求解步骤的一种描述,是指令的有限序列,其中 每一条指令表示一个或多个操作。 算法具有以下五个特性: (1)有穷性 一个算法必须总是在执行有穷步之后结束,且每 一步都在有穷时间内完成。 (2)确定性 算法中每一条指令必须有确切的含义。不存在二义 性。 (3)可行性 一个算法是可行的。即算法描述的操作都是可以通 过已经实现的基本运算执行有限次来实现的。 (4)输入 一个算法有零个或多个输入,这些输入取自于某个特 定的对象集合。 (5)输出 一个算法有一个或多个输出,这些输出是同输入有着 某些特定关系的量。
数据元素:
是数据(集合)中的一个“个体” 是数据结构中讨论的基本单位
数据结构主要指逻辑结构和物理结构 数据之间的相互关系称为逻辑结构。通常 分为四类基本结构: 一、集合 结构中的数据元素除了同属于一 种类型外,别无其它关系。 二、线性结构 结构中的数据元素之间存在一 对一的关系。 三、树型结构 结构中的数据元素之间存在一 对多的关系。 四、图状结构或网状结构 结构中的数据元素 之间存在多对多的关系。
求整数n(n>=0)阶乘的算法如下,其时间复杂度, int fact(int n) {if (n<=1) return 1; return n*fact(n-1); }
A ) O(log2 n) B) O(n)
C)
O(n (2分)
作业:
1. 计算时间复杂度 sum=1; for(i=0;sum<n;i++) sum+=i; 2.设给定若干n值,比较两函数n2和50nlog2n的增长 趋势,并确定在什么范围内,函数n2的值大于
例4 for(i=1;i<=n;++i) for(j=1;j<=n;++j) {++x;s+=x;} 语句频度为:n2 其时间复杂度为:O(n2) 即时间复杂度为平方阶。
数据结构讲义第一章绪论
注:一个抽象数据类型确定了一个模型,但将模型的实 现细节隐藏起来;它定义了一组运算,但将运算 的实现过程隐藏起来。
用抽象数据类型的概念来指导问题的求解过程:
数学模型 非形式算法
抽象数据模型 伪语言程序
数据结构 可执行程序
§ 1.3 抽象数据类型
ADT的定义格式 ADT <ADT名> { 数据对象:<数据对象的定义> 结构关系:<结构关系的定义> 基本操作:<基本操作的定义> }ADT <ADT名>
初始化数据结构;
Destroy( )
销毁数据结构;
Get (i )
查找第 i 个元素;
Insert (i , b ) 在第 i 个位置插入元素 b ;
Delete( i )
删除第 i 个元素;
Traverse( )
遍历整个数据结构
§ 1.3 抽象数据类型
用C语言实现抽象数据类型ADT 用标准C语言表示和实现ADT描述时,主要
§ 1.2 数据结构的基本概念
数 据:描述客观事物的数字、字符以及一切 能够输入到计算机中,并且能够被计 算机程序处理的符号的集合。
数据是一个广义的概念,可以指普通的数据 (可参加算术运算),也可以指符号(源程序、 产品名称等)或数字化了的声音、图形、图像等。
§ 1.2 数据结构的基本概念
数据元素:数据(集合)中的一个个"个体",是组 成数据的"基本单位"。
a2 d4 d1
a1 d1 d2
list
a1
a2
a4 d5 d3
a3 d3 … d4
a3
…
a30 ∧
§ 1.3 抽象数据类型
重庆大学数据结构第一章绪论
• 数据结构的形式定义为: 数据结构是一个二元组 Data_Structures = ( D,S )
其中:D是数据元素的有限集, S是D上关系的有限集。
例 复数的数据结构定义如下: Complex=(C,R)
其中:C是含两个实数的集合﹛C1,C2﹜,分别表示复数的 实部和虚部。R={P},P是定义在集合上的一种关系{〈C1, C2〉}。
• 数据的逻辑结构可归结为以下四类:
一、集合 结构中的数据元素除了同属于一种 类型外,别无其它关系。
二、线性结构 结构中的数据元素之间存在一 对一的关系。
三、树型结构 结构中的数据元素之间存在一 对多的关系。
四、图状结构或网状结构 结构中的数据元素 之间存在多对多的关系。
●数据的物理结构可分为(关系的表示方法): 一. “顺序映象”。以 “y 相对于 x 的存储位置” 表 示 “y 是x的后继”,由此得到的数据存储结构为 “顺序存储结构”。
} ADT Complex
• 1.3 算法和算法分析 • 1.3.1 算法及其设计原则
算法是对问题求解过程的一种描述,是为解决一个 或一类问题给出的一个确定的、有限长的操作序列。
一个算法必须满足以下五个重要特性: (1) 有穷性:一个算法必须总是在执行有穷步之后结束,且每一步
都在有穷时间内完成。
(2) 确定性:算法中每一条指令必须有确切的含义。不存在二义性。
S 是 D 上的关系集, P 是 D 的基本操作集。
• 抽象数据类型的形式定义为: ADT 抽象数据类型名 { 数据对象: 数据对象的定义
数据关系: 数据关系的定义
基本操作: 基本操作的定义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
调的是其本质的特征、其所能完成的功 能以及它和外部用户的接口(即外界使 用它的方法)。
· 数据封装 将实体的外部特性和其内部实现细
节分离,并且对外部用户隐藏其内部实 现细节。
精选ppt
17
• 抽象数据类型的形式描述为:
ADT = ( D,S,P ) 其中:D 是数据对象,
其中:C是含两个实数的集合﹛C1,C2﹜,分别表示复数的 实部和虚部。R={P},P是定义在集合上的一种关系{〈C1, C2〉}。
精选ppt
10
● 数据结构包括: 1. 数据逻辑结构:是对数据元素之间存在的
逻辑关系的描述,它可以用一个数据元素的集 合和定义在此集合上的若干关系表示。
2. 数据物理结构:是数据逻辑结构在计算机 中的表示和实现(逻辑结构在存储器中的映 象),故又称数据“存储结构”。它包含数据 元素的映象和关系的映象。
人的标志。
精选ppt
4
算法的设计,依赖于计算机如何存储人的名 字和对应的电话号码,或者说依赖于名字和其 电话号码的结构。
数据的结构,直接影响算法的选择和效率。
上述的问题是一种数据结构问题。可将名字 和对应的电话号码设计成:二维数组、表结构、 向量。
比如,名字和其电话号码逻辑上可安排成N 元向量的形式,它的每个元素是一个数对(ai , bi), 1≤i≤n
• 一类是不可分割的“原子”型数据元素,如: 整数“5”,字符 “N” 等;
• 另一类是由多个款项构成的数据元素,其中 每个款项被称为一个“数据项”。数据项是 数据结构中讨论的“最小单位”。
姓名 学号 性别
班号
出生日期
入学成绩
年月日
精选ppt
8
• 数据对象
性质相同的数据元素的集合。是数 据的一个子集。
精选ppt
9
• 1.2.2 数据结构
数据结构是带“结构”的数据元素的集合。“结构”即指 数 据元素之间存在的关系。
• 数据结构的形式定义为: 数据结构是一个二元组 Data_Structures = ( D,S )
其中:D是数据元素的有限集, S是D上关系的有限集。
例 复数的数据结构定义如下: Complex=(C,R)
精选环境的不同而不同,当用高
级程序编程时,通常可用高级编程语言 中提供的数据类型描述之。
• 例 当以“顺序存储结构”表示长度为3 的长整数表时,可将它定义为: typedef int Long_int[3];
精选ppt
14
• 不同数据结构其操作集不同,但下列操 作必不可缺: 1) 结构的生成; 2) 结构的销毁; 3) 在结构中查找满足规定条件的数 据元素; 4) 在结构中插入新的数据元素; 5) 删除结构中已经存在的数据元素; 6) 遍历。
3. 对数据元素的操作:对每一个数据结构 而言,必定存在与它密切相关的一组操作。
精选ppt
11
• 数据的逻辑结构可归结为以下四类:
一、集合 结构中的数据元素除了同属于一种 类型外,别无其它关系。
二、线性结构 结构中的数据元素之间存在一 对一的关系。
三、树型结构 结构中的数据元素之间存在一 对多的关系。
程要讨论的数据结构。
精选ppt
3
• 例1、电话号码查询系统 设有一个电话号码薄,它记录了N个
人的名字和其相应的电话号码,假定按 如下形式安排:
(a1,b1)(a2,b2)…(an,bn) 其中ai,bi(i=1,2…n) 分别表示某人的 名字和对应的电话号码
要求设计一个算法,当给定任何一个 人的名字时,该算法能够打印出此人的 电话号码,如果该电话簿中根本就没有 这个人,则该算法也能够报告没有这个
精选ppt
15
• 1.2.3 数据类型和抽象数据类型
• 数据类型:在一种程序设计语言中,变量所具有的数据 种类。是一个“值”的集合和定义在此集合上的“一组操作” 的总称。
• 例、在C语言中,数据类型包括基本类型和构造类型 基本类型:整型、浮点型、字符型 构造类型:数组、结构、联合、指针、枚举型、自定义
• 抽象数据类型(Abstract Data Type 简称 ADT):是指一 个数学模型以及定义在此数学模型上的一组操作。 例如,矩阵的抽象数据类型定义为,矩阵是一个由 m x n 个数排成 m 行 n 列的表,它可以进行初等变换、相加、 相乘、求逆、……等运算。
精选ppt
16
抽象数据类型有两个重要特性:
四、图状结构或网状结构 结构中的数据元素 之间存在多对多的关系。
精选ppt
12
●数据的物理结构可分为(关系的表示方法): 一. “顺序映象”。以 “y 相对于 x 的存储位置” 表 示 “y 是x的后继”,由此得到的数据存储结构为 “顺序存储结构”。
二. "链式映象"。以和x绑定在一起的附加信息(指针) 表示后继关系,这个指针即为 y 的存储地址,由此 得到的数据存储结构为"链式存储结构"。
S 是 D 上的关系集, P 是 D 的基本操作集。
精选ppt
6
1.2 与数据结构相关的基本概念
• 1.2.1 基本概念和术语
·数据 是所有能被输入到计算机中,且能被计算机处
理的符号(数字、字符等)的集合,它是计算机操作对 象的总称。
是计算机处理的信息的某种特定的符号表示形 式。
精选ppt
7
• 数据元素 是数据(集合)中的一个“个体”,在计
算机中通常作为一个整体进行考虑和处理, 是数据结构中讨论的“基本单位”。两类数 据元素:
数据结构还要提供每种结构类型所定义的各 种运算的算法。
精选ppt
5
• 例2、图书馆的书目检索系统 • 例3、人-机对弈问题 • 例4、多岔路口的交通灯管理问题
以上例子中的数学模型正是数据结构要讨论 的问题。
数据结构是一门讨论"描述现实世界实体的数 学模型(非数值计算)及其上的操作在计算机中如 何表示和实现"的学科。
教材
《数据结构》(C语言版)
严蔚敏 吴伟民编著 清华大学出版社
精选ppt
1
第一章 绪论
精选ppt
2
1.1 数据结构讨论的范畴
●算法+数据结构 = 程序设计 ●算法即处理问题的策略 ●数据结构即为问题的数学模型。 ●数值计算问题的数学模型通常可用一组线性
或非线性的代数方程组或微分方程组来描述
●大量非数值计算问题的数学模型正是本门课