资源描述:
《算法与数据结构基础.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章算法与数据结构基础计算机程序主要对数据进行加工和处理。程序中需要说明数据结构:数据的组织形式和存储方式算法:操作数据的步骤和方法数据结构算法16.1数据结构基本概念随着计算机技术的发展,其应用领域越来越广。计算机应用已不在局限于数值计算,更多地用于数据处理和信息管理等非数值计算。例如:学生、图书、财务和人事等信息管理系统。学号姓名性别出生日期班级专业20040001刘强男1984/02/1314001机械制造20040002王晓红女1986/05/0614001机械制造20040003李明男1984/10/2514001机械制造20040041张宇男1984/06/1414002
2、机械电子工程每个学生对应一个数据,由学号、姓名、性别和出生日期等多个数据项构成,通常对学生信息进行插入、删除或查找等操作。2数据结构的定义数据结构是指具有相同特征、相互之间有关联的数据集合。现实世界中每个对象都可以映像成数据元素。数据元素可以由一个数、一个字符或一个名字等单个数据项组成,也可以由多个数据项组成。数据元素、结点数据结构中数据元素都具有某种共同特征数据结构中数据元素之间存在着某种关系3向量{2,43,68,45,32}是数据结构每个数据元素由一个数据项组成数据元素之间有位置上的前后关系每个数据元素由一个数据项组成数据元素之间有位置上的前后关系季度名称组成的集合是数据结构:{
3、春,夏,秋,冬}家庭成员{祖父、父亲、儿子}是数据结构每个数据元素由一个数据项组成数据元素之间有层次上的高低关系4数据结构是指带有结构特性的数据元素集合。主要研究:数据集合中数据元素之间所固有的关系,即数据逻辑结构;数据处理时数据在计算机中的存储关系,即数据存储结构(物理结构);对数据所进行的操作,即算法。5数据逻辑结构数据结构中数据元素之间所固有的关系描述成前后件(前驱与后继)关系。数据之间前后件关系是它们之间的逻辑关系,与它们在计算机中的存储位置无关,因此将这种关系称为逻辑结构。6一个数据结构可以表示为S=(D,R)季节数据结构可以定义成S=(D,R)其中:D={春,秋,冬,夏}
4、R={(春,夏),(夏,秋),(秋,冬)}S表示数据结构D数据元素集合向量数据结构可以定义成S=(D,R)其中:D={2,43,68,45,32}R={(2,43),(43,68),(68,45),(45,32)}数据元素之间的前后件关系的集合7线性结构:一般来说,数据之间有集合,线性,树型和图形4种基本逻辑结构。数据元素之间是一对一的关系除第一个结点无前件外,其他结点都只有一个前件除最后一个结点无后件外,其他结点都只有一个后件例如:春夏冬秋8数据之间存在一对多的关系一个结点最多有一个前件,可以有多个后件前件与后件之间有层次关系一般来说,数据之间有集合,线性,树型和图形4种基本逻辑结
5、构。树型结构:9数据元素之间存在多对多的关系一个结点可以有多个前件和多个后件一般来说,数据之间有集合,线性,树型和图形4种基本逻辑结构。图形结构:10一般来说,数据之间有集合,线性,树型和图形4种基本逻辑结构。集合:是一种松散结构,数据元素之间的关系只是同属于一个集合,可以用其他结构来表示。集合11数据物理结构数据在计算机存储器中的存储方式称为数据物理结构(数据存储结构)。在数据存储结构中,不仅要存放各个数据元素信息,还要存放数据元素之间前后件关系信息。数据元素在计算机中通常有四种存储方式:顺序、链式、索引和散列。12顺序存储结构顺序存储结构是在内存中开辟一块连续内存单元用于存放数据,
6、逻辑上相邻的结点在物理位置上也相邻。即:结点之间的逻辑关系由存储单元的相邻关系来体现。13有如下顺序关系{a,b,c,d}例如:a地址2000H2001Hc2002H2003Hd数据顺序存储结构如果在b和c之间增加新数据x构成{a,b,x,c,d}的顺序关系,应该如何存储?b14链式存储结构链式存储结构中,结点由两部分组成:用于存放数据元素(数据域)用于存放前件或后件的存储地址(指针域)即:通过指针反映数据元素之间的逻辑关系15链式存储结构有如下顺序关系{a,b,c}例如:a2000bc300110033001100316顺序存储结构与链式存储结构比较顺序存储结构:优点:每个结点占
7、用存储空间最少缺点:①如果数据元素很多,则可能找不到一块足够大的连续存储单元②不能很好利用存储单元,容易产生碎片链式存储结构:优点:充分利用所有存储单元缺点:每个结点占用较多存储单元17链式存储的插入JLU^S在J,L之间插入接点S链式存储的删除JLU^删除接点L显然,链式存储的插入和删除操作比较简单、方便186.2算法基本概念程序包含两方面的内容:对数据的描述对操作的描述算法就是操作步骤,是解决“做什么”和“怎么做”的问题。算法是程序的灵