数据结构导论精.ppt
《数据结构导论精.ppt》由会员分享,可在线阅读,更多相关《数据结构导论精.ppt(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构导论第1页,本讲稿共41页目录8.1数据结构8.2数据结构的应用举例8.3数据结构的分类8.4排序8.5查找第2页,本讲稿共41页8-1 数据结构的概念要想成为一个专业的开发人员,至少需要以下3个条件:(1)能够熟练地选择和设计各种数据结构和算法。(2)至少要能够熟练地掌握一门程序设计语言。(3)熟知所涉及的相关应用领域的知识。其中,后两个条件比较容易实现,而第一个条件则需要花相当多时间和精力才能够达到,它是区分一个程序设计人员水平高低的重要标志,数据结构贯穿程序设计的始终,缺乏数据结构和算法的深厚功底,很难设计出高水平的具有专业水准的应用程序。第3页,本讲稿共41页l数据结构是在整个
2、计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据由哪些成分数据构成,以什么方式构成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的数据结构反映成分数据在计算机内部的存储安排。数据结构是数据存在的形式。第4页,本讲稿共41页第5页,本讲稿共41页学 号姓 名高等数学大学英语政治经济学平均成绩1王五王五807678782李四李四907887853张三张三888989894高二高二789095875苏三苏三80999491我们可以把表称为一个数据结构,表中的每一行是一个结点(或记录),它是由学号、姓
3、名、各科成绩及平均成绩等数据项组成。该表中数据元素之间的逻辑关系是:对表中任一个结点,与它相邻且在前面的结点(亦称为直接前趋)最多只有一个;与表中任一结点相邻且在其后的结点(亦称为直接后继)也最多只有一个。表中只有第一个结点没有直接前趋,故称为开始结点;也只有最后一个结点没有直接后继,故称为终端结点。例如,表中张三所在结点的直接前趋结点和直接后继结点分别是李四和高二所在结点,上述结点间的关系构成了这张学生成绩表的逻辑结构。第6页,本讲稿共41页该表的存储结构则是指用计算机语言如何表示结点之间的这种关系,即表中的结点是顺序邻接地存储在一片连续的单元中,还是用指针将这些结点链接在一起?在这张表中,
4、可能要经常查看某一学生的成绩,当学生退学时要删除相应的结点,进来新学生时要增加结点。究竟怎样进行查找、删除、插入,这就是数据的运算问题。搞清楚了上述的3个问题,也就弄清了学生成绩表这个数据结构。数据结构定义为:按某种逻辑关系组织起来的一批数据,应用计算机语言,按一定的存储方式将它们存储在计算机的存储器中,并在这些数据上定义了一个运算的集合,就叫做一个数据结构。第7页,本讲稿共41页8-2 数据结构的应用实例在计算机发展初期,人们使用计算机主要是处理数值计算问题。由于当时所涉及的运算对象是简单的整型、实型或布尔型数据,所以程序设计者的主要精力是集中于程序设计的技巧上,而无需重视数据结构。随着计算
5、机应用领域的扩大和软硬件的发展,“非数值问题”越来越显得重要。根据统计,当今处理非数值问题占用了90%以上的机器时间,这类问题涉及到的数据结构更为复杂,数据元素之间的相互关系一般无法用数学方程式加以描述。解决此类问题的关键已不再是分析数学和计算方法,而是能设计出合适的数据结构,才能有效地解决问题。第8页,本讲稿共41页从提出一个实际问题到计算机解出答案需要经过下列步骤:l首先从实际问题抽象出一个数学模型,l然后设计一个解此数学模型的算法,l最后编写程序、进行测试、调试直至得到最终解答。寻求数学模型的实质是分析问题,从中提取操作的对象以及这些操作对象之间含有的关系,然后用数学语言加以描述。例如,
6、在分析了一个物理现象或化学现象变化的规律之后可以得到一组代数方程或微分方程。然而,更多的问题无法用数学方程加以描述。第9页,本讲稿共41页【例例8-18-1】电话号码查询系统电话号码查询系统l编一个查询某个城市或单位的私人电话号码的程序。要求对任意给出的一个姓名,若该人有电话号码,则迅速找到其电话号码;否则指出该人没有电话号码。l要解此问题首先构造一张电话号码登记表。表中每个结点存放两个数据项:姓名和电话号码。l但对一个有上百万私人电话的城市就不实用了。若这张表是按姓氏排列的,则可另造一张姓氏索引表。查找过程是先在索引表中查对姓氏,然后根据索引表中的地址到电话号码登记表中核查姓名,这样查找登记
7、表时就无需查找其他姓氏的名字了。因此,在这种新的结构上产生的查找算法就更为有效。第10页,本讲稿共41页【例例8-28-2】田径赛的时间安排问题田径赛的时间安排问题l设某校的田径选拔赛共设6个项目的比赛,即跳高、跳远、标枪、铅球、100米和200米短跑,规定每个选手至多参加3个项目的比赛。现有5名选手报名参赛,选手所选择的项目如表8-2所示。表8-2 参赛选手比赛项目表姓 名 项目1 项目2 项目3苏三跳高跳远100米张五标枪铅球李八标枪100米 200米周亮铅球200米 跳高单于跳远200米图中A、B、F分别对应于6个竞赛项目。第11页,本讲稿共41页例8-38-3】多叉路口交通灯的管理问题
8、。圆圈中的号码分别表示4种颜色的交通灯。第12页,本讲稿共41页8-3 数据结构的具体分类l数据结构分为两大类:线性结构和非线性结构。线性结构的逻辑特征是:有且仅有一个开始结点和一个终端结点,并且所有结点最多只有一个直接前趋和一个直接后继。结点和结点的关系是一对一。非线性结构的逻辑特征是一个结点可能有多个直接前趋和直接后继。结点和结点的关系是一对多或多对多。第13页,本讲稿共41页8-3-1 8-3-1 线性表线性表u线性表的逻辑特征是在非空的线性表中,有且仅有一个开始结点a1,它没有直接前趋,而仅有一个直接后继a2;有且仅有一个终端结点an,它没有直接后继,而仅有一个直接前趋an-1;其余的
9、内部结点ai(2in-1)都有且仅有一个直接前趋ai-1和一个直接后继a i+1。很明显,线性表是一种典型的线性结构。例如英文字母表(A,B,C,Z)是线性表,表中的每个字母就是一个数据元素。u一副扑克的点数(2,3,4,J,Q,K,A)也是线性表,其中每一张牌的点数是一个数据元素。第14页,本讲稿共41页8-3-2 栈栈是指能在某一端插入和删除的特殊线性表。例如用桶堆积物品,先堆进来的压在底下,随后一件一件往堆。取走时,只能从上面一件一件取。栈也称为后进先出表(LIFO表)。第15页,本讲稿共41页8-3-3 8-3-3 队列队列队列队列:“先进先出”(First In First Out,
10、FIFO)的数据结构:即插入在表一端进行,而删除在表的另一端进行,我们将这种数据结构称为队或队列,把允许插入的一端叫队尾(rear),把允许删除的一端叫队头(front)。如图8-5所示是一个有5个元素的队列。入队的顺序依次为a1、a2、a3、a4、a5,出队时的顺序将依然是a1、a2、a3、a4、a5。第16页,本讲稿共41页【例例8-48-4】队列的应用队列的应用舞伴问题舞伴问题 (1)问题叙述假设在周末舞会上,男士和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一算法模拟上述舞伴
11、配对问题。(2)问题分析先入队的男士或女士亦先出队配成舞伴。因此该问题具有典型的先进先出特性,可用队列作为算法的数据结构。在算法中,假设男士和女士的记录存放在一个数组中作为输入,然后依次扫描该数组的各元素,并根据性别来决定是进入男队还是女队。当这两个队列构造完成之后,依次将两队当前的队头元素出队来配成舞伴,直至某队列变空为止。此时,若某队仍有等待配对者,算法输出此队列中等待者的人数及排在队头的等待者的名字,他(或她)将是下一轮舞曲开始时第一个可获得舞伴的人。第17页,本讲稿共41页8-3-4 8-3-4 树l树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起
12、来的结构,很像自然界中的树那样。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树夹形象表示 第18页,本讲稿共41页l树结构的特点是:它的每一个结点都可以有不止一个直接后继,除根结点外的所有结点都有且只有一个直接前趋。以下具体地给出树的定义及树的数据结构表示。树是由一个或多个结点组成的有限集合,它很像一株倒悬着的树,从树根到大分枝、小分枝、直到叶子,把数据联系起来,这种数据结构就叫做树结构,简称树。树中每个分叉点称为结点,起始结点称为树根,任意两个结点间的连接关系称为树枝,结点下面不再有分枝称为树叶。结点的前趋结点称为该结点的“双亲”,结点的后趋结点称为该结点的“子女”或
13、“孩子”,同一结点的“子女”之间互称“兄弟”。第19页,本讲稿共41页l在图中,结点A为树的根,根的每个分支称为子树(Subtree),子树也是一棵树;结点子树的根为结点的孩子(Child),如B、C、D为结点A的孩子,而A为B、C、D的双亲(Parent);同一个双亲的孩子之间为兄弟(Sibling)关系;没有孩子的结点为树的叶子(Leaf),H、F、G、D为树的叶子。第20页,本讲稿共41页8-3-5 图l图(Graph)是一种比线性表和树更为复杂的数据结构。在线性表中,数据元素之间仅有线性关系,即每个数据元素只有一个直接前驱和一个直接后继;在树形结构中,数据元素之间有着明显的层次关系,虽
14、然每一层上的数据元素可能和下一层中多个元素(孩子)相关,但只能和上一层中一个元素(双亲)相关;而在图形结构中,结点之间的关系可以是任意的,任意两个数据元素之间都可能相关。第21页,本讲稿共41页(a)有向图 (b)无向图第22页,本讲稿共41页8-3-6 8-3-6 文件 l文件(File)是性质相同的记录的集合。文件的数据量通常很大,一般放置在外存上。数据结构中讨论的文件主要是数据库意义上的文件,不是操作系统意义上的文件。操作系统中研究的文件是一维的无结构连续字符序列。数据库中所研究的文件是带有结构的记录集合,每个记录可由若干个数据项构成。记录是文件中存取的基本单位,数据项是文件可使用的最小
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 导论
限制150内