版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章绪论
目前,计算机已深入到社会生活的各个领域,其应用已不再仅仅局限于科学计算,而更多的是用于控制,管理及数据处理等非数值计算领域。计算机是一门研究用计算机进行信息表示和处理的科学。这里面涉及到两个问题:信息的表示,信息的处理。信息的表示和组织又直接关系到处理信息的程序的效率。
随着应用问题的不断复杂,导致信息量剧增与信息范围的拓宽,使许多系统程序和应用程序的规模很大,结构又相当复杂。因此,必须分析待处理问题中的对象的特征及各对象之间存在的关系,这就是数据结构这门课所要研究的问题。1.1数据结构的基本概念1.1.1基本概念和术语1.数据数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号集合。数据是计算机程序加工的原料。2.数据元素数据元素是数据的基本单位,数据元素也叫做结点或记录。在计算机程序中通常作为一个整体进行考虑和处理。有时,一个数据元素可由若干个数据项组成,例如,一本书的书目信息为一个数据元素,而书目信息的每一项(如书名、作者名等)为一个数据项。数据项是数据的不可分割的最小单位。3.数据对象
数据对象是具有相同性质的数据元素的集合,是数据的一个子集。4.数据类型数据类型是一个值的集合和定义在此集合上的一组操作的总称。1)原子类型。其值不可再分的数据类型。
2)结构类型。其值可以再分解为若干成分(分量)的数据类型。
3)抽象数据类型。抽象数据组织及与之相关的操作。5.数据结构数据结构是相互之间存在一种或多种特定关系的数据元素集合。在任何问题中,数据元素都不是孤立存在的,它们之间存在某种关系,这种数据元素相互之间的关系称为结构。数据结构包括三方面的内容:逻辑结构、存储结构和数据的运算。数据的逻辑结构和存储结构是密不可分的两个方面,一个算法的设计取决于选定的逻辑结构,而算法的实现依赖于所采用的存储结构。1.1.2数据结构三要素1.数据的逻辑结构数据的逻辑结构是指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后间关系,而与他们在计算机中的存储位置无关。逻辑结构分类如下:集合:数据结构中的元素之间除了“同属一个集合”的相互关系外,别无其他关系。线性结构:数据结构中的元素存在一对一的相互关系。
树形结构:数据结构中的元素存在一对多的相互关系。图形结构:数据结构中的元素存在多对多的相互关系。2.数据的存储结构数据的存储结构是数据结构在计算机中的表示(又称映像),也称物理结构。它包括数据元素的机内表示和关系的机内表示。常用的存储结构有顺序存储、链式存储、索引存储和哈希存储等。
1)顺序存储。把逻辑上相邻的的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。其优点是可以实现随机存取,每个元素占用最少的存储空间;缺点是只能使用相邻的一整块存储单元,因此可能产生较多的外部碎片。
2)链式存储。不是求逻辑上相邻的元素在物理位置上也相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。其优点是不会出现碎片现象,能充分利用所有存储单元;缺点是每个元素因存储指针而占用额外的存储空间,且只能实现顺序存取。
3)索引存储。在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项的一般形式是(关键字,地址)。其优点是检索速度快;缺点是附加的索引表额外占用存储空间。另外,增加和删除数据时也要修改索引表,因而会花费较多的时间。
4)散列存储。根据元素的关键字直接计算出该元素的存储地址,又称哈希存储。其优点是检索、增加和删除结点的操作都很快;缺点是若散列函数不好,则可能出现元素存储单元的冲突,而解决冲突会增加时间和空间开销。3.数据的运算数据上的运算包括运算的定义和实现。运算的定义是针对逻辑结构的,指出运算的功能;而运算的实现是针对存储结构的,指出运算的具体操作步骤。1.2算法1.2.1算法的基本概念算法(Algorithm)是指解题方案的准确而完整的描述,它是指令的有限序列,其中的每条指令表示一个或多个操作。算法代表着用系统的方法描述解决问题的策略机制。一个算法具有下列5个重要特性:1)有穷性(Finiteness)。算法的有穷性是指算法必须能在执行有限个步骤之后终止。2)确切性(Definiteness)。算法的每一步骤必须有确切的定义。3)输入项(Input)。一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件。4)输出项(Output)。一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。5)可行性(Effectiveness)。算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成(也称之为有效性)。一般情况下,设计一个“好”的算法应该考虑达到以下目标:1)正确性。算法应能够正确地解决问题。2)可读性。算法应具有良好的可读性,以帮助人们理解。3)健壮性。输入非法数据时,算法应能适当地做出反应或进行处理,而不会产生莫名其妙的输出结果。4)时间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,实现算法应达到较低的时间复杂度。5)空间复杂度。算法的空间复杂度是指算法需要消耗的内存空间,实现算法应达到较低的空间复杂度。1.2.2算法效率的评定1.时间复杂度
算法的时间复杂度是指执行算法所需要的计算工作量。一般来说,计算机算法是问题规模的函数,算法的时间复杂度也因此记做:T(n)=O(f(n))
式中,O的含义是T(n)的数量级,其严格的数学定义是:若T(n)和f(n)是定义在正整数集合上的两个函数,则存在正常数C和n0,使得当n≥n0时,都满足0≤T(n)≤Cf(n)。最坏时间复杂度是指在最坏情况下,算法的时间复杂度。平均时间复杂度是指所有可能输入实例在等概率出现的情况下,算法的期望运行时间。最好时间复杂度是指在最好情况下,算法的时间复杂度。
一般总是考虑在最坏情况下的时间复杂度,以保证算法的运行时间不会比它更长。2.空间复杂度算法的空间复杂度是指算法需要消耗的内存空间。同时间复杂度相比,空间复杂度的分析要简单得多。小结(1)数据结构包括数据的逻辑结构、数据的存储结构和数据的运算三个要素。数据的逻辑结构分为集合、线性结构、树形结构和图形结构。数据的存储结构分为顺序存储、链式存储、索引存储和散列存储。(2)集合中的数据元素是相互独立的,在线性结构中数据元素具有“一对一”的关系,在树形结构中数据元素具有“一对多”的关系,在图形结构中数据元素具有“多对多”的关系。(3)算法(Alg
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海水预处理操作工安全操作规程
- 肾损伤保守治疗影像复查周期规范共识
- 2025-2026学年云南省曲靖市初中数学九年级期末上册自测高频题(详细参考解析)
- Oracle数据库机考实操试题(含详细答案解析)
- OD机试真题(技术岗)含详细答案解析
- 轨道交通消防系统升级改造方案
- 2026年不动产登记代理人《不动产权利理论与方法》题库及答案
- OA系统面试题及详细参考答案(实操版)
- 学校节能改造方案
- 排烟系统施工方案
- 高中生物全部知识点系统总结
- 中国华氏巨球蛋白血症诊疗指南(2025版)
- 2025年雕刻软件ZBrush教程
- 老年恶性肿瘤特点及治疗
- 室外道路景观工程施工方案范例
- QGDW11221-2023低压综合配电箱技术规范(参考文本)
- MATLAB8.X程序设计及典型应用第七章
- 选煤厂机电管理课件
- 水钻打孔协议书
- 毕业设计(论文)-干玉米脱粒机设计
- 《壮药养生膏方生产技术规范》(征求意见稿)编制说明
评论
0/150
提交评论