第1章数据结构和算法优秀课件.ppt
《第1章数据结构和算法优秀课件.ppt》由会员分享,可在线阅读,更多相关《第1章数据结构和算法优秀课件.ppt(93页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章 数据结构和算法第1页,本讲稿共93页2课程教学要求:1 1 1 1、上课做好笔记;、上课做好笔记;、上课做好笔记;、上课做好笔记;2 2、按时、独立、认真完成作业按时、独立、认真完成作业按时、独立、认真完成作业按时、独立、认真完成作业;3 3 3 3、实验课:实验报告(电子档)两份;、实验课:实验报告(电子档)两份;、实验课:实验报告(电子档)两份;、实验课:实验报告(电子档)两份;一份是按要求完成该实验内容的实验报告,一份是按要求完成该实验内容的实验报告,一份是按要求完成该实验内容的实验报告,一份是按要求完成该实验内容的实验报告,另一份则是算法优化后的实验报告;另一份则是算法优化后的
2、实验报告;另一份则是算法优化后的实验报告;另一份则是算法优化后的实验报告;实验成绩综合给出。实验成绩综合给出。实验成绩综合给出。实验成绩综合给出。4 4 4 4、勤奋学习,积极思考,提出问题,解决问题。、勤奋学习,积极思考,提出问题,解决问题。、勤奋学习,积极思考,提出问题,解决问题。、勤奋学习,积极思考,提出问题,解决问题。5 5 5 5、上课不迟到、不早退,班级考勤。、上课不迟到、不早退,班级考勤。、上课不迟到、不早退,班级考勤。、上课不迟到、不早退,班级考勤。第2页,本讲稿共93页3课程考核方法:课程考核方法:1 1、期末考试:、期末考试:50%50%;4 4、实验:、实验:30%30%
3、;2 2、学习笔记:、学习笔记:10%10%;3 3、作业、随堂测验、课程总结:、作业、随堂测验、课程总结:10%10%;第3页,本讲稿共93页4第1章 数据结构和算法 1.1 数据与数据类型 1.2 数据结构 1.3 算法的描述工具C语言 1.4 算法和算法评价 1.5 算法性能分析第4页,本讲稿共93页51.1 数据与数据类型 1.1.1 数据和数据元素 1.1.2 数据类型 1.1.3 数据对象第5页,本讲稿共93页6数据数据 在计算机科学中,数据数据是指描述客观事物的数值、字符、描述客观事物的数值、字符、描述客观事物的数值、字符、描述客观事物的数值、字符、相关符号等所有能够输入到计算机
4、中并能被计算机程序处相关符号等所有能够输入到计算机中并能被计算机程序处相关符号等所有能够输入到计算机中并能被计算机程序处相关符号等所有能够输入到计算机中并能被计算机程序处理的符号的总称理的符号的总称理的符号的总称理的符号的总称。例如:例如:数值数据、字符、声音、图像、图形等第6页,本讲稿共93页7 数据元素数据元素 我们将数据中具有独立意义的个体称为数据元素数据元素。数据元素是数据的基本单位数据元素是数据的基本单位数据元素是数据的基本单位数据元素是数据的基本单位,在程序设计时通常作为一个,在程序设计时通常作为一个整体进行考虑和处理整体进行考虑和处理。有时,一个数据元素可由若干个有时,一个数据元
5、素可由若干个数据项数据项数据项数据项组成。数据项是数组成。数据项是数据的不可分割的最小单位据的不可分割的最小单位。第7页,本讲稿共93页8 为实现图书馆书目的自动检索,将与图书相关的数据做成如图所示的表,试分析表中的数据元素、数据项。10002数据结构陈英18.00书号书名作者价格10001计算机原理张明15.00 答:答:答:答:表中某一本书的相关数据表中某一本书的相关数据(表中每一行表中每一行)都是一个数据元素,每一个都是一个数据元素,每一个数据元素其具有独立意义。每一个数据元素由数据元素其具有独立意义。每一个数据元素由4 4个简单数据项个简单数据项(书号、书书号、书名、作者、价格名、作者
6、、价格)组成。组成。数据元素也被称为:记录、节点。例例例例1.11.1:第8页,本讲稿共93页91.1 数据与数据结构 1.1.1 数据和数据元素 1.1.2 数据类型 1.1.3 数据对象第9页,本讲稿共93页10 数据类型概念和定义数据类型概念和定义 是一个同类值的集合和定义在这个值集上的一组操作的总称。当我们在高级程序语言中定义每一种数据类型,在程序当我们在高级程序语言中定义每一种数据类型,在程序编译时计算机语言编译系统就知道了以下信息:编译时计算机语言编译系统就知道了以下信息:(1)(1)一组性质相同的值集合,一组性质相同的值集合,(2)(2)一个预定的存储体系,一个预定的存储体系,(
7、3)(3)定义在这个值集合上的一组操作。定义在这个值集合上的一组操作。数据类型数据类型可分为两类:数据类型数据类型数据类型数据类型简单数据类型简单数据类型简单数据类型简单数据类型、结构数据类型结构数据类型结构数据类型结构数据类型第10页,本讲稿共93页11 简单数据类型简单数据类型 简单类型的数据是不可分解的整体,如整数、实数、字符、指针、枚举量等。请解释整型数据类型。答:答:答:答:整型数据类型通常有整型数据类型通常有short(2short(2字节字节)、int(2int(2字节字节)、long(4long(4字节字节)等形式,其值集为某等形式,其值集为某个区间上的整数。个区间上的整数。如
8、果整型是两个字节表示的,其值集范围是:如果整型是两个字节表示的,其值集范围是:-32768-327683276732767,定义在整型数据上,定义在整型数据上的操作为:单目正的操作为:单目正(+)(+)操作、负操作、负(-)(-)操作,双目加操作,双目加(+)(+)操作、减操作、减(-)(-)操作、乘操作、乘(*)(*)操作、除操作、除(/)(/)操作和取模操作和取模(MOD)(MOD)操作等算术运算,双目关系操作等算术运算,双目关系(,=,=,等等)操作运算以及赋操作运算以及赋值值(=)(=)操作等。操作等。例例例例1.21.2第11页,本讲稿共93页12 结构数据类型结构数据类型 结构类型
9、结构类型由简单数据类型按照一定的规则构造而成。结构数据类型中还可包含结构数据类型,所以结构数据类型的数据可以分解成若干个简单数据类型的数据或子结构数据类型。也称作复合数据类型。第12页,本讲稿共93页13 数组数据类型分析。答:答:数组是结构数据类型,例如:数组是结构数据类型,例如:char name20,一维数组由若干个同种简单数据类型顺序排列而成,一维数组由若干个同种简单数据类型顺序排列而成,数组的每个值的数据类型相同;数组的每个值的数据类型相同;int a1010,二维数组看成是一个以,二维数组看成是一个以“一行一行”为一个元素的一维数组;为一个元素的一维数组;而而“一行一行”中简单元素
10、有序。中简单元素有序。float b51015等。三维数组看成是一个以等。三维数组看成是一个以“一个面一个面(行行*列列)”为一个元为一个元素的一维数组;素的一维数组;“面面”为二维数组。为二维数组。例例例例1.31.3第13页,本讲稿共93页14 定义表1.1表示的数据类型。解:解:解:解:表表1.1中每一个数据元素的数据项是由长整型的书号、字符型的书名、中每一个数据元素的数据项是由长整型的书号、字符型的书名、作者名以及实型的价格,我们可以采用如下的作者名以及实型的价格,我们可以采用如下的C语言语句来定义一个称为语言语句来定义一个称为EmployeeType的、新的的、新的(用户自定义用户自
11、定义)数据类型:数据类型:typedef struct long mun;char name10,book100;float price;EmployeeType;例例例例1.41.4第14页,本讲稿共93页15 然后,将这个名为然后,将这个名为EmployeeType的新数据类型当作一个基本数据类型来的新数据类型当作一个基本数据类型来使用。我们可以使用该数据类型定义一个变量使用。我们可以使用该数据类型定义一个变量x:EmployeeType x;它表达的是它表达的是“变量变量x将在后面的程序中用到,它指称一个大约将在后面的程序中用到,它指称一个大约118个字节个字节的主存储器区域,用于以二进
12、制依次存放四个值:一个整数、两个字符串的主存储器区域,用于以二进制依次存放四个值:一个整数、两个字符串和一个实数和一个实数”。第15页,本讲稿共93页161.1 数据与数据结构 1.1.1 数据和数据元素 1.1.2 数据类型 1.1.3 数据对象第16页,本讲稿共93页17 数据对象数据对象 数据对象是数据类型的实例,简称对象。数据对象举例。答:答:答:答:例如:例如:25,是整型数据对象。,是整型数据对象。A,是字符数据对象。,是字符数据对象。char*p,定义,定义p为一个字符指针对象。为一个字符指针对象。int a10,定义,定义a为一个含有为一个含有10个整型数的整型数组对象。个整型
13、数的整型数组对象。Rectangle r,定义,定义 r 为一个为一个Rectangle类型的对象。类型的对象。RECtangle rec,定义,定义 rec 为一个为一个RECtangle 抽象数据类型的对象。抽象数据类型的对象。例例例例1.51.5第17页,本讲稿共93页18第1章 数据结构和算法 1.1 数据与数据类型 1.2 数据结构 1.3 算法的描述工具C语言 1.4 算法和算法评价 1.5 算法性能分析第18页,本讲稿共93页19 在计算机科学中,是指数据元素之间的关系,它包括三个方面的内容:(1)数据元素间的逻辑关系,即数据的(2)数据元素以一定的存储方式存放在计算机的存储器中
14、,形成数据元素的(3)在这些数据元素上定义的一组 数据结构数据结构数据结构数据结构逻辑结构逻辑结构逻辑结构逻辑结构存储结构存储结构存储结构存储结构运算集合运算集合运算集合运算集合第19页,本讲稿共93页20 数据的逻辑结构数据的逻辑结构定义:定义:数据元素之间的相互联系称为数据的逻辑结构。数据元素的逻辑结构的形式定义为一个二元组:B(K,R)B是一种数据结构,K是数据元素的有限集合,K=ki|1 i n,n 0 R是K上二元关系的有限集合,R=rj|1 j m,m 0。二元关系可以表示为序偶,(x,yK),二元关系也可以表示为无序对,(x,y)(x,yK)。第20页,本讲稿共93页21 数据的
15、逻辑结构可以用图形形象地表示。用图形中的每一个节点(或叫顶点)对应着一个数据元素,用两节点间的连线(称有向边或弧)对应着关系中的一个序偶,其中第一个元素为起始点,第二个元素为终止点,箭头指向终止点。第21页,本讲稿共93页22例:序偶和无序对的图形表示如图所示。(a)无序对无序对(A,B),(无向边无向边);(b)序偶序偶,(也可以用也可以用2个单向箭头边个单向箭头边);(c)序偶序偶,(有向边有向边);(d)序偶序偶,(有向边有向边)第22页,本讲稿共93页23 根据数据元素之间关系的不同特性,通常有下列四类基本结构。线性逻辑结构线性逻辑结构 树型逻辑结构树型逻辑结构 图型逻辑结构图型逻辑结
16、构 集合逻辑结构集合逻辑结构第23页,本讲稿共93页24 线性逻辑结构线性逻辑结构 例:数据的逻辑结构 Linearity=(K,R)。其中K=01,02,03,04,05,06,07,08;R=r ,r=,。节点之间是一个对一个的关系,呈线性关系,是线性逻辑结构。节点之间是一个对一个的关系,呈线性关系,是线性逻辑结构。它的特征是:若结构为非空集,则该结构有且只有一个开始节点和它的特征是:若结构为非空集,则该结构有且只有一个开始节点和一个终端节点,并且所有节点都最多只有一个直接前趋和一个直接一个终端节点,并且所有节点都最多只有一个直接前趋和一个直接后继。后继。第24页,本讲稿共93页25 树形
17、逻辑结构树形逻辑结构 例:数据的逻辑结构 Tree=(K,R)。其中K=A,B,C,D,E,F,G,H,I,J,R=r,r=,。它的特征是:节点之间是一个对多个的关系,一个节点可能有一个直它的特征是:节点之间是一个对多个的关系,一个节点可能有一个直接前趋和多个直接后继。呈树形关系,是树形数据结构接前趋和多个直接后继。呈树形关系,是树形数据结构(非线性结构非线性结构)。第25页,本讲稿共93页26 图形逻辑结构图形逻辑结构 例:数据的逻辑结构 Graph=(K,R)。其中K=0.1,0.2,0.3,0.4,0.5,0.6,0.7,R=r,r=(0.1,0.2),(0.1,0.4),(0.2,0.
18、3),(0.2,0.6),(0.2,0.7),(0.3,0.7),(0.4,0.6),(0.5,0.7),或者r=,它的特征是:节点之间是多个对多个的关系,它的特征是:节点之间是多个对多个的关系,一个节点可能有多个直接前趋和多个直接后继。一个节点可能有多个直接前趋和多个直接后继。呈图形关系呈图形关系 (非线性结构非线性结构)。第26页,本讲稿共93页27 集合逻辑结构集合逻辑结构例:数据的逻辑结构 set=(K,R)。其中K=1,2,3,4,5,6,7,8,9,10;R=,二元关系集为空,表示元素之间不存在关系,元素彼此是独立的。是集合。集合中数据元素之间的关系是松散的,实际运算时可以用其它结
19、构来表示它。第27页,本讲稿共93页28 数据的存储结构数据的存储结构 数据的存储结构是 用计算机处理具体问题时,必须考虑由这个具体问题抽象出的数据在计算机中的存储方式,以便于运算。通常情况下,数据在计算机中存储方式有以下四种:顺序存储顺序存储 链接存储链接存储 索引存储索引存储 散列存储散列存储指数据在计算机中的存储方式指数据在计算机中的存储方式指数据在计算机中的存储方式指数据在计算机中的存储方式第28页,本讲稿共93页29 顺序存储顺序存储 将逻辑上相邻的结点存储在物理位置相邻的存储单元中,结点间的逻辑关系由存储单元的邻接关系来体现 (3,5,6,8,23,12,54)=float an
20、例例例例1.61.6 第29页,本讲稿共93页30例例例例1.71.7第30页,本讲稿共93页31 链接存储链接存储 逻辑上相邻的结点不一定存储在物理位置相邻的存储单元中,结点间的逻辑关系由附加的指针字段来体现。一组数据元素的集合(3,5,6)365 例例例例1.81.8 第31页,本讲稿共93页32例例例例1.9 1.9 设有一组线性排列的数据元素(zhao,qian,sun,li,zhou,wu,zheng,wang),其链接存储形式如图所示。第32页,本讲稿共93页33 索引存储索引存储 该方法在存储结点信息的同时,建立附加的索引表。索引表中的每一个索引项由唯一标识某结点的关键字以及该结
21、点的地址组成。例例例例1.101.10 赵1钱23孙56李891、赵文 36754232、赵五 675432823、钱四 896543224、钱进 365423756、孙军 245639889、李百 5674382第33页,本讲稿共93页34 散列存储散列存储 应用一个函数,将每一个结点的关键字作为该函数的自变量,得到相应的函数值作为该结点的存储地址。有函数 y=2x,集合(3,5,6)的存储:1 2 3 4 5 6 7 8 9 10 11 12 13 356例例例例1.111.11第34页,本讲稿共93页35 数据的运算数据的运算 正如整数和实数分别对应不同的运算一样,不同逻辑结构的数据有不
22、同的运算。数据运算不仅仅是加、减、乘、除、矩阵、微分、积分、方程等等这些数值计算问题,还包括像在一张表格中,进行查找记录,增加记录,修改记录,删除记录等等操作运算,而怎样才能进行这样的运算呢?在数据结构中,这些运算常常涉及算法问题。例如:例如:线性结构的数据数据可以非常方便地进行插入、删除数据元素,而对于树和图这样的线性结构的数据数据可以非常方便地进行插入、删除数据元素,而对于树和图这样的非线性结构的数据可以有查询数据元素之间的关系、遍历数据元素等运算非线性结构的数据可以有查询数据元素之间的关系、遍历数据元素等运算。通常情况下,逻辑关系不同的数据分别对应一组运算的集合;而数据的存储结构反映数通
23、常情况下,逻辑关系不同的数据分别对应一组运算的集合;而数据的存储结构反映数通常情况下,逻辑关系不同的数据分别对应一组运算的集合;而数据的存储结构反映数通常情况下,逻辑关系不同的数据分别对应一组运算的集合;而数据的存储结构反映数据在计算机内部的存储安排,对具有相同逻辑关系的数据考虑其不同的物理存储,目的是为据在计算机内部的存储安排,对具有相同逻辑关系的数据考虑其不同的物理存储,目的是为据在计算机内部的存储安排,对具有相同逻辑关系的数据考虑其不同的物理存储,目的是为据在计算机内部的存储安排,对具有相同逻辑关系的数据考虑其不同的物理存储,目的是为了提高算法的效率。了提高算法的效率。了提高算法的效率。
24、了提高算法的效率。第35页,本讲稿共93页36 数据的运算数据的运算栈的基本运算集合:(1)初始化栈:Inistack(S),将栈S置为一个空栈(不含任何元素)。(2)进栈:Push(S,X),将元素X插入到栈S中,也称为“入栈”、“压入”。(3)出栈:pop(S),删除栈S中的栈顶元素,也称为”退栈”、“删除”、“弹出”。(4)取栈顶元素:gettop(S),取栈S中栈顶元素。(5)判栈空:StackEmpty(S),判断栈S是否为空,若为空,返回值为true,否则返回值为false。第36页,本讲稿共93页37 根据以上分析,我们可以看到数据结构的概念主要包括根据以上分析,我们可以看到数据
25、结构的概念主要包括如图所示的三个方面的主要内容:如图所示的三个方面的主要内容:第37页,本讲稿共93页38 我们讨论两数据结构是否相同,主要看它们的逻辑结我们讨论两数据结构是否相同,主要看它们的逻辑结构、存储结构和运算集合是否相同,这三者中只要有一构、存储结构和运算集合是否相同,这三者中只要有一个不同,都不能称这两个数据结构相同。个不同,都不能称这两个数据结构相同。第38页,本讲稿共93页39 设有两个呈线性排列的数据分别是设有两个呈线性排列的数据分别是1,3,5,7,9和和0.1,0.2,0.4,0.6,0.8(其中的每个数是数据元素),现将它(其中的每个数是数据元素),现将它们分别存放在整
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第1章 数据结构和算法优秀课件 数据结构 算法 优秀 课件
限制150内