1-数据结构-清华大学严蔚敏PPT-绪论重点优秀PPT.ppt
《1-数据结构-清华大学严蔚敏PPT-绪论重点优秀PPT.ppt》由会员分享,可在线阅读,更多相关《1-数据结构-清华大学严蔚敏PPT-绪论重点优秀PPT.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法与数据结构算法与数据结构教材:数据结构教材:数据结构(C语言版语言版)。严蔚敏,吴伟。严蔚敏,吴伟民民 编编 著。清华高校出版社。著。清华高校出版社。参考文献:参考文献:1 数据结构数据结构。张选平,雷咏梅。张选平,雷咏梅 编,编,严蔚严蔚敏敏 审。审。机械工业出版社。机械工业出版社。2 数据结构与算法分析。数据结构与算法分析。Clifford A.Shaffer著,著,张张 铭,刘晓丹铭,刘晓丹 译。电子工业出版译。电子工业出版社。社。3 数据结构习题与解析数据结构习题与解析(C语实言版语实言版)。李。李春葆。春葆。清华高校出版社。清华高校出版社。4 数据结构与算法。夏克俭数据结构与算法
2、。夏克俭 编著。国防编著。国防工业出版社。工业出版社。第1章 绪 论 目前,计算机已深化到社会生活的各个领域,其应用已不再仅仅局限于科学计算,而更多的是用于限制,管理及数据处理等非数值计算领域。计算机是一门探讨用计算机进行信息表示和处理的科学。这里面涉及到两个问题:信息的表示,信息的处理。信息的表示和组织又干脆关系到处理信息的程序的效率。随着应用问题的不断困难,导致信息量剧增与信息范围的拓宽,使很多系统程序和应用程序的规模很大,结构又相当困难。因此,必需分析待处理问题中的对象的特征及各对象之间存在的关系,这就是数据结构这门课所要探讨的问题。编写解决实际问题的程序的一般过程:编写解决实际问题的程
3、序的一般过程:如何用数据形式描述问题如何用数据形式描述问题?即由问题抽象出一即由问题抽象出一个适当的数学模型个适当的数学模型;问题所涉及的数据量大小及数据之间的关系问题所涉及的数据量大小及数据之间的关系;如何在计算机中存储数据及体现数据之间的关如何在计算机中存储数据及体现数据之间的关系系?处理问题时须要对数据作何种运算处理问题时须要对数据作何种运算?所编写的程序的性能是否良好所编写的程序的性能是否良好?上面所列举的问题基本上由数据结构这门课程来上面所列举的问题基本上由数据结构这门课程来回答。回答。计算机求解问题的一般步骤计算机求解问题的一般步骤1.1 数据结构及其概念数据结构及其概念 算法与数
4、据结构算法与数据结构是计算机科学中的一门综合性专是计算机科学中的一门综合性专业基础课。是介于数学、计算机硬件、计算机软件三者业基础课。是介于数学、计算机硬件、计算机软件三者之间的一门核心课程,不仅是一般程序设计的基础,而之间的一门核心课程,不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。他系统程序和大型应用程序的重要基础。数据结构的例子数据结构的例子姓名姓名电话号码电话号码陈海陈海1361234558813612345588李四锋李四锋1305611234513056112345。例
5、例1:电话号码查询系统:电话号码查询系统 设有一个电话号码薄,它记录了设有一个电话号码薄,它记录了N个人的名字个人的名字和其相应的电话号码,假定按如下形式支配:和其相应的电话号码,假定按如下形式支配:(a1,b1),(a2,b2),(an,bn),其中,其中ai,bi(i=1,2n)分别表示某人的名字和电话号码。分别表示某人的名字和电话号码。本问本问题是一种典型的表格问题。如表题是一种典型的表格问题。如表1-1,数据与数,数据与数据成简洁的一对一的线性关系。据成简洁的一对一的线性关系。表表1-1 线性表结构线性表结构例例2 2:磁盘书目文件系统:磁盘书目文件系统 磁盘根书目下有很多子磁盘根书目
6、下有很多子书目及文件,每个子书目里书目及文件,每个子书目里又可以包含多个子书目及文又可以包含多个子书目及文件,但每个子书目只有一个件,但每个子书目只有一个父书目,依此类推:父书目,依此类推:本问题是一种典型的树本问题是一种典型的树型结构问题,如图型结构问题,如图1-1 1-1,数,数据与数据成一对多的关系,据与数据成一对多的关系,是一种典型的非线性关系结是一种典型的非线性关系结构构树形结构。树形结构。图图图图1-11-1 树形树形结构结构结构结构例例3 3:交通网络图:交通网络图 从一个地方到另外一个地方可以有多条路径。本问从一个地方到另外一个地方可以有多条路径。本问题是一种典型的题是一种典型
7、的网状结构网状结构问题,数据与数据成多对多的问题,数据与数据成多对多的关系,是一种非线性关系结构。关系,是一种非线性关系结构。佛山惠州广州中山东莞深圳珠海图图1-2 网状结构网状结构 数据(Data):是客观事物的符号表示。在计算机科学中指的是全部能输入到计算机中并被计算机程序处理的符号的总称。数据元素(Data Element):是数据的基本单位,在程序中通常作为一个整体来进行考虑和处理。一个数据元素可由若干个数据项(Data Item)组成。数据项是数据的不行分割的最小单位。数据项是对客观事物某一方面特性的数据描述。数据对象(Data Object):是性质相同的数据元素的集合,是数据的一
8、个子集。如字符集合C=A,B,C,。基本概念和术语基本概念和术语 数据结构数据结构(Data Structure):是指相互之间具:是指相互之间具有有(存在存在)确定联系确定联系(关系关系)的数据元素的集合。元的数据元素的集合。元素之间的相互联系素之间的相互联系(关系关系)称为逻辑结构。数据元称为逻辑结构。数据元素之间的逻辑结构有四种基本类型,如图素之间的逻辑结构有四种基本类型,如图1-3所所示。示。集合:结构中的数据元素除了集合:结构中的数据元素除了“同属于一个集同属于一个集合合”外,没有其它关系。外,没有其它关系。线性结构:结构中的数据元素之间存在一对线性结构:结构中的数据元素之间存在一对
9、一的关系。一的关系。树型结构:结构中的数据元素之间存在一对树型结构:结构中的数据元素之间存在一对多的关系。多的关系。图状结构或网状结构:结构中的数据元素之图状结构或网状结构:结构中的数据元素之间存在多对多的关系。间存在多对多的关系。数据结构的形式定义是一个二元组:数据结构的形式定义是一个二元组:Data-Structure=(DData-Structure=(D,S)S)其中:其中:D D是数据元素的有限集,是数据元素的有限集,S S是是D D上关系的有限集。上关系的有限集。例例2 2:设数据逻辑结构:设数据逻辑结构B=B=(K K,R R)K=kK=k1 1,k,k2 2,k,k9 9 R=
10、k R=,k,k,k,k,k,k,k,k,k,k 画出这逻辑结构的图示,并确定那些是起点,那些是终点画出这逻辑结构的图示,并确定那些是起点,那些是终点 数据结构的形式定义数据结构的形式定义图图1-3 四类基本四类基本结构图结构图结构图结构图 数据结构的存储方式数据结构的存储方式 数据元素之间的关系可以是元素之间代表某种含义的自然关系,也可以是为处理问题便利而人为定义的关系,这种自然或人为定义的“关系”称为数据元素之间的逻辑关系,相应的结构称为逻辑结构。数据结构在计算机内存中的存储包括数据元素的存储和元素之间的关系的表示。元素之间的关系在计算机中有两种不同的表示方法:依次表示和非依次表示。由此得
11、出两种不同的存储结构:依次存储结构和链式存储结构。依次存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑结构(关系)。链式存储结构:在每一个数据元素中增加一个存放链式存储结构:在每一个数据元素中增加一个存放另一个元素地址的指针另一个元素地址的指针(pointer)(pointer),用该指针来表示,用该指针来表示数据元素之间的逻辑结构数据元素之间的逻辑结构(关系关系)。例:设有数据集合例:设有数据集合A=3.0,2.3,5.0,-8.5,11.0 A=3.0,2.3,5.0,-8.5,11.0,两,两种不同的存储结构。种不同的存储结构。依次结构:数据元素存放的地址是连续的;依次结
12、构:数据元素存放的地址是连续的;链式结构:数据元素存放的地址是否连续没有要链式结构:数据元素存放的地址是否连续没有要求。求。数据的逻辑结构和物理结构是密不行分的两个数据的逻辑结构和物理结构是密不行分的两个方面,一个算法的设计取决于所选定的逻辑结构,方面,一个算法的设计取决于所选定的逻辑结构,而算法的实现依靠于所接受的存储结构。而算法的实现依靠于所接受的存储结构。在在C C语言中,用一维数组表示依次存储结构;语言中,用一维数组表示依次存储结构;用结构体类型表示链式存储结构。用结构体类型表示链式存储结构。数据结构的三个组成部分:数据结构的三个组成部分:逻辑结构:逻辑结构:数据元素之间逻辑关系的描述
13、数据元素之间逻辑关系的描述 D_S=(D,S)存储结构:存储结构:数据元素在计算机中的存储及其逻辑数据元素在计算机中的存储及其逻辑关系的表现称为数据的存储结构或物理结构。关系的表现称为数据的存储结构或物理结构。数据操作:数据操作:对数据要进行的运算。对数据要进行的运算。本课程中将要探讨的三种逻辑结构及其接受本课程中将要探讨的三种逻辑结构及其接受的存储结构如图的存储结构如图1-4所示。所示。数据的逻辑结构数据的逻辑结构非线性结构非线性结构集合图状结构有向图无向图树形结构一般树二叉树线性结构线性结构一般线性表线性表推广广义表数组串受限线性表栈和队列图1-5 数据逻辑结构层次关系图数据逻辑结构层次关
14、系图图图1-4 逻辑结构与所采用的存储结构逻辑结构与所采用的存储结构线性表线性表树树图图顺序存储结构顺序存储结构链式存储结构链式存储结构复合存储结构复合存储结构逻辑结构逻辑结构物理结构物理结构 数据类型数据类型(Data Type)(Data Type):指的是一个值的集合和定:指的是一个值的集合和定义在该值集上的一组操作的总称。义在该值集上的一组操作的总称。数据类型是和数据结构亲密相关的一个概念。数据类型是和数据结构亲密相关的一个概念。在在C C语言中数据类型有:基本类型和构造类型。语言中数据类型有:基本类型和构造类型。数据结构不同于数据类型,也不同于数据对象,它数据结构不同于数据类型,也不
15、同于数据对象,它不仅要描述数据类型的数据对象,而且要描述数据对象不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间的相互关系。各元素之间的相互关系。数据类型数据类型 数据结构的主要运算包括:数据结构的主要运算包括:建立建立(Create)(Create)一个数据结构;一个数据结构;消退消退(Destroy)(Destroy)一个数据结构;一个数据结构;从一个数据结构中删除从一个数据结构中删除(Delete)(Delete)一个数据元素;一个数据元素;把一个数据元素插入把一个数据元素插入(Insert)(Insert)到一个数据结构中;到一个数据结构中;对一个数据结构进行访问对一个数据结
16、构进行访问(Access)(Access);对一个数据结构对一个数据结构(中的数据元素中的数据元素)进行修改进行修改(Modify)(Modify);对一个数据结构进行排序对一个数据结构进行排序(Sort)(Sort);对一个数据结构进行查找对一个数据结构进行查找(Search)(Search)。数据结构的运算数据结构的运算 抽象数据类型抽象数据类型(Abstract Data Type(Abstract Data Type,简称,简称ADT)ADT):是指一个数学模型以及定义在该模型上:是指一个数学模型以及定义在该模型上的一组操作。的一组操作。ADT ADT的定义仅是一组逻辑特性描述,的定义
17、仅是一组逻辑特性描述,与其与其在计算机内的表示和实现无关。因此,不论在计算机内的表示和实现无关。因此,不论ADTADT的内部结构如何变更,只要其数学特性不变,都的内部结构如何变更,只要其数学特性不变,都不影响其外部运用。不影响其外部运用。ADT ADT的形式化定义是三元组:的形式化定义是三元组:ADT=(DADT=(D,S S,P)P)其中:其中:D D是数据对象,是数据对象,S S是是D D上的关系集,上的关系集,P P是对是对D D的基本操作集。的基本操作集。1.2 抽象数据类型抽象数据类型ADTADT的一般定义形式是:的一般定义形式是:ADT ADT 数据对象:数据对象:数据关系:数据关
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 清华大学 严蔚敏 PPT 绪论 重点 优秀
限制150内