数据结构-第1次课第一章基本概念(更改的)(精品).ppt
《数据结构-第1次课第一章基本概念(更改的)(精品).ppt》由会员分享,可在线阅读,更多相关《数据结构-第1次课第一章基本概念(更改的)(精品).ppt(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章第一章 绪论绪论 计算机是一门研究利用计算机进行信息表示和处理的科学。涉计算机是一门研究利用计算机进行信息表示和处理的科学。涉及:及:信息的表示信息的表示 信息的处理信息的处理 而信息的表示又直接关系到处理信息的程序的效率。随着计而信息的表示又直接关系到处理信息的程序的效率。随着计算机的普及,信息量的增加,信息范围的拓宽,使许多系统程序算机的普及,信息量的增加,信息范围的拓宽,使许多系统程序和应用程序的规模很大,结构又相当复杂。因此,为了编写出一和应用程序的规模很大,结构又相当复杂。因此,为了编写出一个个“好好”的程序,必须分析待处理的对象的特征及各对象之间存的程序,必须分析待处理的对象
2、的特征及各对象之间存在的关系,这就是数据结构这门课所要研究的问题。在的关系,这就是数据结构这门课所要研究的问题。数据结构数据结构-独立的学科始于独立的学科始于19681968年,但在此之前有关内容已散见年,但在此之前有关内容已散见 于编译原理和操作系统的教材之中。于编译原理和操作系统的教材之中。-1968 -1968年,美国的图灵奖年,美国的图灵奖”获得者克努特(获得者克努特(D.E.KnuthD.E.Knuth)开创课程体系。)开创课程体系。为什么要学习数据结构?为什么要学习数据结构?1、电子计算机的主要用途:、电子计算机的主要用途:计算机是一门研究利用计算机进行信息表示和处理的计算机是一门
3、研究利用计算机进行信息表示和处理的科学。涉及:科学。涉及:信息的表示信息的表示和和信息的处理。信息的处理。早期:早期:主要用于数值计算。主要用于数值计算。后来:后来:处理逐渐扩大到非数值计算领域(能处理多种复杂的处理逐渐扩大到非数值计算领域(能处理多种复杂的具有一定结构关系的数据)。具有一定结构关系的数据)。提高提高程序的效率、编写出一个程序的效率、编写出一个“好好”的程序。必须分的程序。必须分析待处理的对象的特征及各对象之间存在的关系,这就是析待处理的对象的特征及各对象之间存在的关系,这就是数据结构这门课所要研究的问题。数据结构这门课所要研究的问题。第一章第一章 绪论绪论用计算机解决问题的过
4、程用计算机解决问题的过程建立模型建立模型构造求解算法构造求解算法选择存储结构选择存储结构编写程序编写程序测试测试描述问题的描述问题的共性共性描述问题的求描述问题的求解方法解方法将问题涉及的数据将问题涉及的数据存储到计算机中存储到计算机中分析问题的过程分析问题的过程数据结构的作用数据结构的作用进行更为复杂的算进行更为复杂的算法设计法设计选择合理的存储选择合理的存储结构结构提高编程技术提高编程技术数据结构课程的形成和发展数据结构课程的形成和发展形成阶段形成阶段l6060年代初期,年代初期,“数据结构数据结构”有关的内容散见于操作系有关的内容散见于操作系统、编译原理和表处理语言等课程。统、编译原理和
5、表处理语言等课程。l19681968年,美唐纳德年,美唐纳德克努特克努特(Donald Ervin Knuth)(Donald Ervin Knuth)教教授开创了数据结构的最初体系,授开创了数据结构的最初体系,计算机程序设计技计算机程序设计技巧巧第一卷第一卷基本算法基本算法 ,“数据结构数据结构”被列入美国被列入美国一些大学计算机科学系的教学计划。一些大学计算机科学系的教学计划。发展阶段:发展阶段:l数据结构的概念不断扩充,包括了网络、集合代数论、数据结构的概念不断扩充,包括了网络、集合代数论、关系等关系等“离散数学结构离散数学结构”的内容。的内容。l7070年代后期,年代后期,8080年代
6、初,我国高校陆续开设该课程。年代初,我国高校陆续开设该课程。介于数学、计算介于数学、计算机硬件和计算机机硬件和计算机软件三者之间的软件三者之间的一门核心课程。一门核心课程。数据结构课程数据结构课程所处的地位:所处的地位:学习提要学习提要掌握本课程所涉及到的基本名词、术语和掌握本课程所涉及到的基本名词、术语和概念,特别是数据的概念,特别是数据的逻辑结构逻辑结构和和存储结构存储结构之间的关系及性质。之间的关系及性质。了解抽象数据类型的定义、表示和实现方了解抽象数据类型的定义、表示和实现方法。法。理解理解算法设计的五个要素算法设计的五个要素和基本要求;掌和基本要求;掌握算法效率的度量方法,着重学习算
7、法的握算法效率的度量方法,着重学习算法的时间复杂度时间复杂度分析。分析。教学重点教学重点数据、数据元素、数据项;数据、数据元素、数据项;逻辑结构和存储结构在概念上的联系与区逻辑结构和存储结构在概念上的联系与区别;别;数据结构及其三个组成部分;数据结构及其三个组成部分;抽象数据类型和数据抽象;抽象数据类型和数据抽象;评价算法优劣的标准及方法。评价算法优劣的标准及方法。1.1 什么是数据结构什么是数据结构1.2 基本概念和术语基本概念和术语1.3 抽象数据类型的表示与实现抽象数据类型的表示与实现1.4 算法和算法的衡量算法和算法的衡量 1.4.1 算法算法 1.4.2 算法设计的要求算法设计的要求
8、 1.4.3 算法效率的度量算法效率的度量 1.4.4 算法的存储空间的需求算法的存储空间的需求1.1 1.1 什么是数据结构什么是数据结构什么是数据结构什么是数据结构 众所周知,计算机的程序是对信息进行处理。在大众所周知,计算机的程序是对信息进行处理。在大众所周知,计算机的程序是对信息进行处理。在大众所周知,计算机的程序是对信息进行处理。在大多数情况下,这些信息并不是没有组织的,信息(数多数情况下,这些信息并不是没有组织的,信息(数多数情况下,这些信息并不是没有组织的,信息(数多数情况下,这些信息并不是没有组织的,信息(数据)之间往往具有重要的结构关系,这就是数据结构据)之间往往具有重要的结
9、构关系,这就是数据结构据)之间往往具有重要的结构关系,这就是数据结构据)之间往往具有重要的结构关系,这就是数据结构的内容。的内容。的内容。的内容。(数据结构在软件开发中的地位数据结构在软件开发中的地位)系统分析系统分析系统设计系统设计系统实现系统实现系统维护系统维护系统设计系统设计1.1 1.1 什么是数据结构什么是数据结构什么是数据结构什么是数据结构Niklaus Wirth Algorithm+Data Structures=Programs程序程序:算法算法:数据结构数据结构:为计算机处理问题编制的为计算机处理问题编制的 一组指令集一组指令集 处理问题的策略处理问题的策略问题的数学模型问
10、题的数学模型(信息表示信息表示)一元二次方程求解一元二次方程求解 例如例如:数值计算的程序设计问题数值计算的程序设计问题 代数方程组代数方程组 环流模式方程环流模式方程 (球面坐标系球面坐标系)全球天气预报全球天气预报 例一:电话号码查询系统例一:电话号码查询系统算法:算法:?模型:模型:?设有一个电话号码薄,它记录了设有一个电话号码薄,它记录了设有一个电话号码薄,它记录了设有一个电话号码薄,它记录了N N N N个人的名字和其相应的电话号个人的名字和其相应的电话号个人的名字和其相应的电话号个人的名字和其相应的电话号码,假定按如下形式安排:码,假定按如下形式安排:码,假定按如下形式安排:码,假
11、定按如下形式安排:(a1(a1(a1(a1,b1)(a2b1)(a2b1)(a2b1)(a2,b2)b2)b2)b2)(an(an(an(an,bnbnbnbn)其中其中其中其中(aiaiaiai,bi)(ibi)(ibi)(ibi)(i=1=1=1=1,2 2 2 2n)n)n)n)分别表示某人的名字和对应的电话号分别表示某人的名字和对应的电话号分别表示某人的名字和对应的电话号分别表示某人的名字和对应的电话号码。要求设计一个算法,当给定任何一个人的名字时,该算法能码。要求设计一个算法,当给定任何一个人的名字时,该算法能码。要求设计一个算法,当给定任何一个人的名字时,该算法能码。要求设计一个算
12、法,当给定任何一个人的名字时,该算法能够打印出此人的电话号码,如果该电话簿中根本就没有这个人,够打印出此人的电话号码,如果该电话簿中根本就没有这个人,够打印出此人的电话号码,如果该电话簿中根本就没有这个人,够打印出此人的电话号码,如果该电话簿中根本就没有这个人,则该算法也能够报告没有这个人的信息。则该算法也能够报告没有这个人的信息。则该算法也能够报告没有这个人的信息。则该算法也能够报告没有这个人的信息。线性表线性表(N个人的信息个人的信息)非数值计算的程序设计问题非数值计算的程序设计问题例二:人机对弈问题例二:人机对弈问题算法:算法:?模型:模型:?树树(棋盘和棋子棋盘和棋子)例三:铺设城市的
13、煤气管道例三:铺设城市的煤气管道算法:算法:?模型:模型:?如何规划使得总投资如何规划使得总投资花费最少花费最少?图图(城市铺设点和铺设成本城市铺设点和铺设成本)概括地说,概括地说,数据结构是一门研究非数值计数据结构是一门研究非数值计算的程序设计问题中计算机的操算的程序设计问题中计算机的操作对象以及它们之间的关系和操作对象以及它们之间的关系和操作等的学科。作等的学科。1.2 基本概念和术语基本概念和术语一、数据与数据结构一、数据与数据结构二、数据类型二、数据类型三、抽象数据类型三、抽象数据类型一、数据与数据结构一、数据与数据结构 所有能所有能被输入被输入到计算机中,且能被计到计算机中,且能被计
14、算机算机处理的处理的符号符号(数值、字符等数值、字符等)的集合。的集合。数据数据:是是计算机操作的对象计算机操作的对象的总称。的总称。是计算机处理的是计算机处理的信息的信息的某种特定的某种特定的符号符号表示形式表示形式。是数据(集合)中的一个是数据(集合)中的一个“个体个体”,在计算机中通常作为一个整体进在计算机中通常作为一个整体进行考虑和处理。是数据结构中讨论行考虑和处理。是数据结构中讨论的的基本基本单位。单位。数据元素数据元素:如如:整数整数5 5,字符字符N N等。等。-是不可分割的是不可分割的“原子原子”其中每个款项称为一个其中每个款项称为一个“数据项数据项”它是数据结构中讨论的它是数
15、据结构中讨论的最小最小单位单位数据元素也可以由若干款项构成。数据元素也可以由若干款项构成。例如:例如:描述一个学生的数据元素描述一个学生的数据元素称之为组合项称之为组合项年年 月月 日日姓姓 名学名学 号班号班 号性别出生日期入学成绩号性别出生日期入学成绩数据结构:数据结构:带带结构结构的数据元素的集合的数据元素的集合有一个特性相同的数据元素的集合,有一个特性相同的数据元素的集合,如果在数据元素之间存在一种或多种如果在数据元素之间存在一种或多种特定的关系,则称为一个数据结构。特定的关系,则称为一个数据结构。指的是数据元素之间存在的关系指的是数据元素之间存在的关系例如,当用例如,当用三个三个 4
16、 位的十进制数位的十进制数表示一表示一个含个含 12 位数的十进制数时,位数的十进制数时,3214,6587,9345 a1(3214),a2(6587),a3(9345)则在数据元素则在数据元素 a1、a2 和和 a3 之间存在着之间存在着“次序次序”关系关系 a1,a2、a2,a3 3214,6587,9345 6587,3214,9345例如例如:a1 a2 a3a2 a1 a3又例,在又例,在 2 行行 3 列的二维数组列的二维数组中六个元素中六个元素a1,a2,a3,a4,a5,a6之间存在两个关系之间存在两个关系:行的次序关系行的次序关系:row=,col=,a1 a2 a3 a4
17、 a5 a6列的次序关系列的次序关系:若在若在 6 个数据元素个数据元素a1,a2,a3,a4,a5,a6 之间存在如下的之间存在如下的次序关系次序关系:|i=1,2,3,4,5 数据结构是数据结构是相互之间存在着某种逻辑相互之间存在着某种逻辑关系关系的数据元素的集合的数据元素的集合。可见,不同的可见,不同的“关系关系”构成不同的构成不同的“结构结构”则构成一维数组的定义。则构成一维数组的定义。从从关系关系或或结构结构分分,数据结构,数据结构可归结为可归结为以下以下四类四类:线性线性结构结构:树形树形结构结构图状图状结构结构集合集合结构结构结构中的数据元素之间存结构中的数据元素之间存结构中的数
18、据元素之间存结构中的数据元素之间存在一对一的关系。在一对一的关系。在一对一的关系。在一对一的关系。结构中的数据元素之间存结构中的数据元素之间存结构中的数据元素之间存结构中的数据元素之间存在一对多的关系。在一对多的关系。在一对多的关系。在一对多的关系。结构中的数据元素之间存结构中的数据元素之间存结构中的数据元素之间存结构中的数据元素之间存在多对多的关系。在多对多的关系。在多对多的关系。在多对多的关系。结构中的数据元素除了同结构中的数据元素除了同结构中的数据元素除了同结构中的数据元素除了同属于一种类型外,别无其属于一种类型外,别无其属于一种类型外,别无其属于一种类型外,别无其它关系。它关系。它关系
19、。它关系。数据结构包括数据结构包括“逻辑结构逻辑结构”和和“物理结物理结构构”两个方面两个方面(层次层次):):逻辑结构逻辑结构 是对数据元素之间的逻辑关系是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和的描述,它可以用一个数据元素的集合和定义在此集合上的若干关系来表示定义在此集合上的若干关系来表示;(;(形式形式定义)定义)物理结构物理结构 是逻辑结构在计算机中的表示是逻辑结构在计算机中的表示和实现,故又称和实现,故又称“存储结构存储结构”。数据结构的形式定义描述为数据结构的形式定义描述为:数据结构数据结构是一个二元组是一个二元组(逻辑结构)(逻辑结构)Data_Structu
20、res=(D,S)其中其中:D 是是数据元素的有限集数据元素的有限集,S 是是 D上上关系的有限集关系的有限集。数据的数据的存储结构存储结构 逻辑结构在存储器中的映象逻辑结构在存储器中的映象“数据元素数据元素”的映象的映象?“关系关系”的映象的映象?数据元素的映象方法:数据元素的映象方法:用二进制位用二进制位(bit)(bit)的位串表示数据元素的位串表示数据元素(321)10 =(501)8 =(101000001)2 A =(101)8 =(001000001)2A A的的ASCIIASCII码是码是6565关系的映象方法:关系的映象方法:(表示(表示 x,y 的方法的方法)顺序映象顺序映
21、象以相邻的存储位置表示后继关系以相邻的存储位置表示后继关系例如例如:令令 y y 的存储位置和的存储位置和 x x 的存储位置的存储位置之间差一个常量之间差一个常量 C C而而 C C 是一个隐含固定值,是一个隐含固定值,整个存储结构整个存储结构中只含数据元素本身的信息中只含数据元素本身的信息 x yx yC C链式映象链式映象以附加信息以附加信息(指针指针)表示后继关系表示后继关系需要用一个和需要用一个和 x x 在一起的在一起的附加信息附加信息指示指示 y y 的存储位置的存储位置y xy x在不同的编程环境中在不同的编程环境中 存储结构可有不同的描述方法。存储结构可有不同的描述方法。当用
22、高级程序设计语言进行编程时,通当用高级程序设计语言进行编程时,通常可用高级编程语言中提供的数据类型常可用高级编程语言中提供的数据类型描述之。描述之。例如:以三个带有次序关系的整数表示例如:以三个带有次序关系的整数表示一个长整数时,可利用一个长整数时,可利用C+语言中提供语言中提供的整数数组类型,定义长整数为:的整数数组类型,定义长整数为:int long_int3;二、数据类型二、数据类型 在用高级程序语言编写的程序中,必在用高级程序语言编写的程序中,必须对程序中出现的每个变量、常量或表须对程序中出现的每个变量、常量或表达式,明确说明它们所达式,明确说明它们所属的数据类型。属的数据类型。数据在
23、真正用程序进行操作时,还必须对其进行类型分类。所以从抽数据在真正用程序进行操作时,还必须对其进行类型分类。所以从抽象数据类型的观点来讨论数据结构,已称为一种新的趋势,越来越被象数据类型的观点来讨论数据结构,已称为一种新的趋势,越来越被人们所重视。人们所重视。每个类型隐含或明显规定了在程序执行期间其变量或表达式允许取值每个类型隐含或明显规定了在程序执行期间其变量或表达式允许取值的范围以及允许进行操作。的范围以及允许进行操作。整型数据类型:值的集合整型数据类型:值的集合整型数据类型:值的集合整型数据类型:值的集合N N2,2,1,0,1,21,0,1,2一组操作:、一组操作:、一组操作:、一组操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 第一章 基本概念 更改 精品
限制150内