数据结构预算法第1章绪论.pptx
《数据结构预算法第1章绪论.pptx》由会员分享,可在线阅读,更多相关《数据结构预算法第1章绪论.pptx(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、12v 1.1 数据结构讨论的范畴数据结构讨论的范畴v 1.2 与数据结构相关的概念与数据结构相关的概念v 1.3 算法及其描述和分析算法及其描述和分析3Niklaus Wirth: Algorithm + Data Structures = Programs程序设计程序设计: :算法算法: 数据结构数据结构: 为计算机处理问题编制 一组指令集 处理问题的策略处理问题的策略问题的数学模型问题的数学模型4例如例如: 数值计算数值计算的程序设计问题已知:游泳池的长已知:游泳池的长lengh和宽和宽wide,求求面积面积area。分析:分析:问题涉及的对象:游泳池的长问题涉及的对象:游泳池的长len
2、gh 宽宽wide,面积面积area;对象之间的关系:对象之间的关系:area=lengh wide;5程序:程序:main() int len, wide ,area ;scanf (“%d %d%n”, &len,&wide);area=len*wide ;printf (“area=%d”,area); 可见,对于数值问题,对象之间的关系通可见,对于数值问题,对象之间的关系通常可以用方程或函数表达,我们只要能列出表常可以用方程或函数表达,我们只要能列出表达对象之间关系的方程或函数,找到求解方程达对象之间关系的方程或函数,找到求解方程或函数的方法,就可以编写程序了。或函数的方法,就可以编写
3、程序了。6非数值计算非数值计算的程序设计问题的程序设计问题例一例一: 求一组(n n个)整数整数中的最大值算法: ? ?模型:?基本操作是“比较两个数的大小比较两个数的大小”取决于整数值的范围整数值的范围7例二:例二:计算机对弈算法:?模型:?对弈的规则和策略棋盘及棋盘的格局8例三:例三:足协的数据库管理算法:?模型:?需要管理的项目?如何管理? 用户界面?各种表格9概括地说:概括地说: 数据结构是一门讨论数据结构是一门讨论“描述现实描述现实世界实体的数学模型世界实体的数学模型( (非数值计算非数值计算) )及其上的操作在计算机中如何表示及其上的操作在计算机中如何表示和实现和实现”的学科。的学
4、科。10一、基本概念和术语一、基本概念和术语二、数据结构二、数据结构三、数据类型和抽象数据类型三、数据类型和抽象数据类型11一、基本概念和术语一、基本概念和术语所有能被输入被输入到计算机中,且能被计算机处理的符号处理的符号的集合。数据数据: :是计算机操作的对象计算机操作的对象的总称。是计算机处理的信息的信息的某种特定的符号表示形式表示形式。12是数据(集合)中的一个“个体个体”数据元素数据元素: :是数据结构中讨论的基本基本单位13 数据项:数据项:是数据结构中讨论的最小最小单位数据元素可以是数据项的集合数据元素可以是数据项的集合例如:描述一个运动员的数据元素可以是姓名姓名俱乐部名称俱乐部名
5、称出生日出生日期期参加日期参加日期职务职务 业绩业绩称之为组合项年年 月月 日日编号编号关键码14二、数据结构二、数据结构 数据结构数据结构是带“结构结构”的数据元素的集合。15 假设用三个三个 4 位的十进制数位的十进制数表示一个含 12 位数的十进制数。位数的十进制数。3214,6587,9345 a1(3214),a2(6587),a3(9345)则在数据元素 a1、a2 和 a3 之间存在着“次序次序”关系关系 a1,a2 、 a2,a3 3214,6587,9345 a1 a2 a3 6587,3214,9345 a2 a1 a3例如例如: : 示例一:16 在2行3列的二维数组a1
6、, a2, a3, a4, a5, a6中六个元素之间存在两个关系: a1 a2 a3 a4 a5 a6行的次序关系行的次序关系:列的次序关系列的次序关系: :row = ,col = , a1 a3 a5 a2 a4 a6 a1 a2 a3a4 a5 a6 示例二:17 在一维数组 a1, a2, a3, a4, a5, a6 的数据元素之间存在如下的次序关系次序关系:| i=1, 2, 3, 4, 5 或者说,数据结构数据结构是相互之间存在着某相互之间存在着某种逻辑关系的数据元素的集合种逻辑关系的数据元素的集合。可见,不同的“关系关系”构成不同的“结构结构” 示例三:18数据的逻辑结构逻辑
7、结构可归结为以下四类四类: :线性线性结构树形树形结构图状图状结构集合集合结构19数据结构数据结构的形式定义的形式定义为:数据结构数据结构是一个二元组 Data_Structures = (D, S)其中:D 是数据元素的有限集数据元素的有限集, S 是 D上关系的有限集关系的有限集。20存储结构存储结构 “数据元素”的映象 “关系”的映象 21数据元素的映象方法:数据元素的映象方法:用二进制位(bit)的位串表示数据元素(321)10 = (101000001)2 A = (65)10 = (001000001)222关系关系的映象方法:的映象方法:(表示x, y的方法)数据在计算机中的存储
8、数据在计算机中的存储:只有两种形式只有两种形式顺顺 序序:数据元素逐个连续存放数据元素逐个连续存放(通过物理相通过物理相 邻来确定关系邻来确定关系)非顺序非顺序:数据元素任意存放数据元素任意存放(通过存储地址确通过存储地址确 定关系定关系)23在不同的编程环境中,存储结构可有不同的描述方法。 当用高级程序设计语言进行编程时,通常可用高级编程语言中提供的数据类型描述之。24例如例如: : 以三个带有次序关系的整数表示一个长整数时,可利用 C 语言中提供的整数数组类型。 typedef int Long_int 3;定义长整数为:25 在用高级程序语言编写的程序中,必须对程序中出现的每个变量、常量
9、或表达式,明确说明明确说明它们所属的数据类型数据类型。三、数据类型和抽象数据类型三、数据类型和抽象数据类型数据类型数据类型26例如,C 语言中提供的基本数据类型基本数据类型有:整型整型 int浮点型浮点型 float字符型字符型 char逻辑型逻辑型 bool ( C+语言)语言)双精度型双精度型 double实型实型( C+语言语言)27 数据类型数据类型是一个值的集合值的集合和定义在此集合上的一组操作一组操作的总称。 不同类型的变量,其所能取的值值的范围的范围不同,所能进行的操作进行的操作不同。28抽象数据类型抽象数据类型 (Abstract Data Type 简称简称ADT) 是指一个
10、数学模型以及定义是指一个数学模型以及定义在此数学模型上的一组操作。在此数学模型上的一组操作。29抽象数据类型的形式描述抽象数据类型的形式描述 抽象数据类型可用(D, S, P)三元组表示 其中: D 是数据对象; S 是 D 上的关系集; P 是对 D 的基本操作集。 30ADT 抽象数据类型名抽象数据类型名 数据对象:数据对象:数据对象的定义 数据关系:数据关系:数据关系的定义 基本操作:基本操作:基本操作的定义 ADT 抽象数据类型名其中基本操作的定义格式为:基本操作名基本操作名(参数表) 初始条件:初始条件:初始条件描述 操作结果操作结果:操作结果描述 31例如,例如,抽象数据类型复数复
11、数的定义: 数据对象:数据对象: De1,e2e1,e2RealSet 数据关系:数据关系: R1 | e1是复数的实数部分 | e2 是复数的虚数部分 ADT Complex 32基本操作:基本操作: AssignComplex( &Z, v1, v2 )操作结果:构造复数 Z,其实部和虚部 分别被赋以参数 v1 和 v2 的值。 DestroyComplex( &Z)操作结果:复数Z被销毁。 GetReal( Z, &realPart )初始条件:复数已存在。操作结果:用realPart返回复数Z的实部值。33 GetImag( Z, &ImagPart )初始条件:复数已存在。操作结果:
12、用ImagPart返回复数Z的虚部值。 Add( z1,z2, &sum )初始条件:z1, z2是复数。操作结果:用sum返回两个复数z1, z2 的 和值。 ADT Complex34假设:z1和z2是上述定义的复数则 Add(z1, z2, z3) 操作的结果z3 = z1 + z2即为用户需求的复数求和的结果35抽象数据类型的表示和实现抽象数据类型的表示和实现 抽象数据类型需要通过固有数据类固有数据类型型(高级编程语言中已实现的数据类型)来实现。例如,对以上定义的复数。36typedef struct float realpart; float imagpart;complex;/ -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 预算法 绪论
限制150内