数据结构与算法第一章.ppt
《数据结构与算法第一章.ppt》由会员分享,可在线阅读,更多相关《数据结构与算法第一章.ppt(83页珍藏版)》请在三一办公上搜索。
1、数据结构与算法,生命学院 范 军,课程教材及参考书,教学用书:数据结构(C语言版)徐孝凯,贺桂英 编 清华大学出版社,2004年参考书:1数据结构,许卓群,张乃孝,杨冬青,唐世渭,高等 教育出版社,1987年 2.数据结构 C+与面向对象的途径,张乃孝,裘宗燕,高等教育出版社,1998年 3数据结构(C语言版),严蔚敏、吴伟民,清华大学出版社,1997年 4.数据结构与算法,王若梅等著,中山大学出版社,2000年 5.C语言程序设计 谭浩强 清华大学出版社,第一章 概论,1.1数据结构课程研究的内容 1.2 数据结构课程的发展历史1.3 基本概念和术语 1.4 数据类型的表示与实现 1.5 算
2、法和算法分析,1.1数据结构课程研究的内容,如今计算机已深入到人类社会的各个领域。计算机的应用已不再局限于科学计算,而更多地用于控制、管理及数据处理等非数值计算的处理工作。(数值计算?)与此相应计算机加工处理的对象由纯粹的数值发展到字符、表格和图像等各种具有一定结构的数据。而随着计算机的普及,信息量的增加,信息范围的拓宽,使许多系统程序和应用程序的规模很大,结构又相当复杂,这就给程序设计带来一些新的问题。为了编写出一个“好”的程序,必须分析待处理的对象的特性以及各处理对象之间存在的关系。这就是“数据结构”这门学科形成和发展的背景。,什么是程序、软件?N.沃思(Niklaus Wirth)教授提
3、出:程序=算法+数据结构以上公式说明了如下两个问题:(1)数据上的算法决定如何构造和组织数据(算法数据结构)。(2)算法的选择依赖于作为基础的数据结构(数据结构算法)。软件=程序+文档(软件工程的观点),数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象及其关系和操作的学科。它是一门主要研究怎样合理地组织数据,建立合适的数据结构来提高计算机执行程序所用的时间效率和空间效率的科学。它的主要研究内容为:数据的逻辑结构-数据关系之间的逻辑关系 数据的存储结构-数据的逻辑结构在计算机中的表示 操作算法-插入、删除、修改、查询、排序等,数据结构的应用示例,电话号码簿查询系统 研究目的:构造一个
4、可以多种方式查询的电话号码查询系统。研究内容:如何建立一个可通过姓名,拼音,号码,分组进行多角度查询的电话号码查询系统如何兼顾多种查询的查询表的存储结构以及相关的关联操作,采用姓氏索引表的存储结构:,查找过程是先在索引表中查对姓氏,然后根据索引表中的地址到电话号码登记表中核查姓名,这样查找登记表时就无需查找其它姓氏的名字了。因此,在这种新的结构上产生的查找算法就更为有效。,例2 图书馆的书目检索系统自动化,在图书馆内每本书都有多种信息条目所组成的书目信息卡。每一本书都有惟一的一个登录号,但不同的书目之间可能有近似甚至相同的书名,或者有相同的作者名,或者有相同的分类号。在书目自动检索系统中的主要
5、操作便是按照某个特定要求(如给定书名、作者、分类号等)对书目文件进行快速、准确地查询。,研究目的:书目自动检索系统中的主要操作便是按照某个特定要求(如给定书名、作者、分类号等)对书目文件进行快速、准确地查询。研究的内容:如何构建一个检索效率高的书目信息数据库?(顺序存储?链接存储?顺序存储?索引存储?)如何对这个数据库进行高效率的检索、维护和管理 操作?(索引查询、分组查询、模糊查询、关联查询、关键词查询),如将这些信息卡片按特定的分类编排,:如按书名编排的、有按作者编排的、还有按分类编排的,等等。这样计算机按作者的要求查找起来就更加迅速。,图书馆的书目自动检索系统设计:建立所处理的基本数据(
6、数据元素)并选择合适的数据元素类型:每本书由(登录号,书名,作者,出版社,分类号)组成;设计并建立数据元素间的关系(逻辑结构):建立一个按登录号顺序排列的书目表和按书名、作者和分类号顺序排列的索引表;设计所需的操作:一组作用在这些表上的运算(查询、插入、修改等);设计数据的存储(存储结构):怎样存储这些数据及其关系使得上述操作容易实现。,计算机之所以能和人对奕是因为有人将对奕的策略事先己存入计算机。并且以某种格式存储在计算机中。因此,在对奕问题中,实际上是计算机根据对奕过程中可能出现的棋盘状态在存储的对策中检索出最佳的“步骤”。若将从对奕开始到结束的过程中所有可能出现的格局都画在一张图上,则可
7、得到棵倒长的“树”。“树根”是对奕开始之前的棋盘格局,而所有的“叶子”就是可能出现的结局,对奕的过程就是从树根沿树枝到某个叶子的过程。,例 3 人机对弈问题(博弈树),研究目的:设计一个能应对各种复杂情况的并具有记忆功能的具有人工智能的决策判断系统。研究的内容:如何构建一个检索效率高的对弈(决策)信息数据库?(树的结构?树的存储?)如何对这个数据库进行高效率的检索操作?(最优路径设计、遍历查询方法),建立并输入对弈的棋盘格局数据(数据元素):格局(某时刻的棋盘布局);建立格局之间的关系(逻辑结构):一个格局可以派生出几个下一个格局(树状结构,博弈树);设计所需的操作:由某个格局出发,借助于以上
8、的格局树(显式地或非显式地)找出计算机赢的步骤;设计格局的存储结构:如何存储格局及其格局间的关系。,这类人机对弈的问题目前已发展成为一大类人工智能问题的研究课题:博弈树或称为最优决策树的构建、查询和存储以及自学习。具体的应用有:医疗专家系统、武器系统的人工智能决策,民用机器人的智能系统等。,例子4 田径赛的时间安排问题(无向图的着色问题),设有六个比赛项目,规定每个选手至多可参加三个项目,有五人报名参加比赛(如下表所示)设计比赛日程表,使得在尽可能短的时间内完成比赛。,-田径赛的时间安排问题解法(1)设用如下六个不同的代号代表不同的项目:跳高 跳远 标枪 铅球 100米 200米 A B C
9、D E F(2)用顶点代表比赛项目不能同时进行比赛的项目之间连上一条边。(3)某选手比赛的项目必定有边相连(不能同时比赛)。,A,E,B,F,D,C,只需安排四个单位时间进行比赛,例5 设计一个考试日程安排表,使在尽可能短的时间内安排完考试,要求同一个学生选修的几门课程不能安排在同一时间内,,解决该问题,首先选择一个合适的数据结构。用数据结构中的一种称为无向图的结构来表示所要解决问题的结构,图中的顶点表示课程,不能同时考试的课程之间连接一条连线。则该问题可转化为该无向图的着色问题,即用最少的颜色对无向图的顶点着色,并且保证任何两个相连通的顶点具有不同的颜色。而同一种颜色表示相同的考试时间。答案
10、:1:A,C 2:B,D 3:E 4:F从该问题的求解过程可看出,解决此问题的关键选择合适的数据结构,以及适当的求解算法。而这两项关键因素恰恰是数据结构所研究的内容。,实际上例4,例5都可归类于利益冲突的最优分隔这一大类问题,这类的问题包含有“地图的有限颜色的着色”,“农夫带狼、羊和白菜过河”等许多人工智能规划问题。,例子6:如何在各城市之间构建一个具有最少代价的通讯联通网图的最小生成树问题,若一个联通网表示城市间的通讯系统,网的顶点代表城市,网的边代表城市之间架设通讯线路的代价,各城市的距离不同,地理条件不同,其造价也不同,即边上的权不同。如果要求既要联通城市,又要使总造价最低,这就是一个求
11、图的最小生成树的问题。,图(a)就是一个连通网,图(b),(c),(d)是它的三棵生成树,每棵树的权都不同,它们分别为57,53和38,目前,数据结构与算法中已有标准算法了解决这类问题:一是普里姆(Prim)算法,另一个是克鲁斯卡尔(Kruskal)算法。,1.2 数据结构课程的发展历史,数据结构课程的形成和发展:形成阶段:60年代初期,“数据结构”有关的内容散见于操作系统、编译原理和表处理语言等课程。1968年,“数据结构”被列入美国一些大学计算机科学系的教学计划。发展阶段:数据结构的概念不断扩充,包括了网络、集合代数论、关系等“离散数学结构”的内容。70年代后期,我国高校陆续开设该课程。目
12、前:它是计算机专业的核心课程,考研的核心课程。同时,它现在也成为许多非计算机专业的重要的专业选修课。,学习数据结构的目的:提高复杂程序设计的能力培养算法设计能力为后继课程(如操作系统、编译原理和数据库设计,信息系统处理等)打基础。,1.3 基本概念和术语,1.数据:是客观事物的符号表示,是信息的载体;是描述客观事物的数、字符、以及所有能输入到计算机中,被计算机程序识别和处理的符号的集合。数值性数据非数值性数据,2.数据元素:是数据的基本单位,也称之为元素、记录、结点、顶点等。有时一个数据元素可以由若干数据项(Data Item)组成(此时数据元素被称为记录)例子:学籍管理系统中一个学生的记录3
13、.数据项:是数据的不可分割的最小单位。例子:学籍管理系统中的学生的学号,姓名等数据4.数据对象:是性质相同的数据元素的集合,是数据的一个子集。例子:如整数数据对象 N=0,1,2,字母字符数据对象 C=A,B,C,F。,5.数据结构:是指组成数据的元素之间的结构以及相互之间的依赖关系。这种关系有:空间位置关系-存储结构 相互联系、作用和依赖关系-逻辑结构,(1)数据逻辑结构的类型,1.集合:数据中的元素之间没有关系.即R=2.线性结构:线性结构是指数据中各元素之间具有1对1的先后次序关系。R=(d1,d2),(d2,d3),(d(n-1),dn),3.树状结构:树结构是指数据中各元素之间具有1
14、对多的先后次序关系,并且只有一个元素称为树根结点,其余均为树枝结点和树叶结点。4.图状结构:图结构是指数据中各元素之间具有多对多的关系。这是数据结构中最复杂的结构。,数据结构的图形表示,从图形表示中可以清醒地看出:,集合结构中的元素是各自独立的,元素之间没有联系线性结构中的元素是一个接一个串联起来的,它有一个头元素和一个尾元素,其余为中间元素;每个中间元素既有前驱元素,又有后继元素在树结构中,树根结点只有后继结点,而没有前驱结点;除树根结点外,每个结点都有唯一一个前驱结点,又称为是父结点或双亲结点在图结构中,每个结点或称顶点都可以有任意多个前驱结点和任意多个后继结点。树结构是图结构的特例,线性
15、结构是树结构的特例。为了区别于线性结构,时常把树结构和图结构称为非线性结构。,(2)数据结构的形式定义:某一数据对象的所有数据成员之间的关系。记为:B=K,R B 为一种数据结构,它由数据元素的集合K和K上二元关系的集合R所组成。K 是某一数据对象,R 是该对象中所有数据成员两两之间的关系的有限集合。,四种数据结构的二元组表示:,集合结构中的元素集合K和二元关系R分别为:K=A,B,C,D,E,F,G R=线性结构中的元素集合K和二元关系R分别为:K=A,B,C,D,E,F,G R=,树结构中的元素集合K和二元关系R分别为:K=A,B,C,D,E,F,G R=,图结构中的元素集合K和二元关系R
16、分别为:K=A,B,C,D,E,F,G R=,,(3)数据结构应用实例,注:由于每条记录的职工号各不相同,所以以每条记录的职工号作为该记录的关键字,,假定不考虑该表中记录之间的任何次序,则该表中的数据就是一个集合结构,对应的记录集合以及二元关系为:K=Rec1,Rec2,Rec3,Rec4,Rec5,Rec6,Rec7,Rec8,Rec9,Rec10 R=若考虑到该表中的职工记录是按照职工号从小到大有序排列的这个特点,则这个职工表又是一个线性结构,其中表头元素为01号职工的记录信息,接着为02号职工的,依次类推,表尾元素为10号职工的记录信息。该线性结构包含的记录集合和二元关系为:K=01,0
17、2,03,04,05,06,07,08,09,10 R=,有时需要按职工的出生日期进行数据结构的定义和处理,则可以把表中的所有职工看作是按照出生日期,从小到大有序的,由此对应的数据结构也是一种线性结构,该线性结构包含的记录集合和二元关系为:K=01,02,03,04,05,06,07,08,09,10 R=,对应的图形表示为:,在上面职工表中,还存在职工人员之间领导与被领导的关系,其中01号职工为经理,直接领导02、03和04号职工,他们分别是相应部门的主管,02号职工直接领导05和06号职工,03号职工直接领导07、08和09号职工,04号职工直接领导10号职工。由此可知,该职工表是一种树结
18、构,包含的职工集合和二元关系分别为:K=01,02,03,04,05,06,07,08,09,10 R=,对应的图形表示为:,若要反映职工之间的好友关系,假定01和02号职工是好友,01和04号是好友,02和03、02和06、02和07、03和07、04和06、05和07之间是好友,则反映这种好友关系的数据结构是图结构,二元组中的元素集合和有序对集合分别为:K=01,02,03,04,05,06,07,08,09,10 R=,对应的图形表示如下面左图所示,其中08、09和10号职工无好友,在图形中为孤立顶点,省略未画;图形中每对顶点之间的两条相反的有向边,表示这两个顶点职工是一对好朋友,为了简
19、化起见,两条相反的有向边可以用一条无向边来代替,隐含着该无向边是双向的,即连接的两个顶点互为前驱和后继,则对应的无向图表示如下面右图所示。,这样R关系可改写为:R=(01,02),(01,04),(02,03),(02,06),(02,07),(03,07),(04,06),(05,07)如果图的两个节点间的两个方向的有序对的关系是相同的则这个有序对可简化成一个,对应图形中的一条无向边,由无向边构成的图形称为无向图,反之为有向图。,(4)数据的存储结构(物理结构),数据(逻辑)结构的存储包含数据元素的存储及其逻辑关系的存储,是数据结构在计算机中的表示(或映象)。根据存储映像的特点,存储结构可分
20、为:顺序存储结构、链式存储结构、索引和散列等。,存储结构的分类:顺序结构,顺序的方法:将逻辑上相邻的元素存储到物理上相邻的存储位置.常用于线性的数据结构.例如,D=d1,d2,d3,d4,d5 R=(d1,d2),(d2,d3),(d3,d4),(d4,d5)假定一个结点占一个单元,d1存放于200号单元,d1,d2,d3,d4,d5,200,201,202,203,204,存储结构的分类:链式结构,这种结构是给结点附加一个指针字段,指出其后继节点的位置,即存放结点的存储单元分为两部分:,指针项可以有多个,以指示多个后继(或前驱).例如,R=(d1,d2),(d1,d3),(d2,d4),(d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 第一章
链接地址:https://www.31ppt.com/p-6050249.html