- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第9章_数据结构与算法
第9章 数据结构与算法 9.1 数据结构基础 ⒈ 数据 数据(Data)是指客观事物的名称、数量、特征、性质的描述形式(即编码),是所有能输入到计算机中并被计算机程序处理的符号的总称。数据既是计算机加工的对象,又是计算机的产品(计算结果)。 ⒉ 数据项 数据项(Data Item)是数据的不可再分的最小单位。例如组成一个学生信息的每一项(姓名、学号、成绩等)为一个数据项。 ⒊ 数据元素 数据元素(Data Element)是数据的基本单位。一个数据元素又叫做一个数据结点,简称结点。一般来说,现实世界中客观存在的一切个体都可以是数据元素。数据元素可以是简单的,只有一个数据项,例如一个数,一个字符,一个名字等;也可以是复杂的,由若干数据项组成,一个数据结点由用来描述一个独立事物的名称、数量、特征、性质的一组相关信息组成,即这种复杂型数据元素由多个数据项组成。 ⒋ 数据对象 数据对象(Data Object)是性质相同的数据元素的集合,是数据的一个子集。 ⒌ 数据类型 数据类型(Data Type)是指程序设计语言中所允许的变量的种类,也就是变量可以取的值和可以进行的运算的集合。可以把数据类型看成是在程序设计语言中已经实现了的数据结构。 ⒍ 数据结构 数据结构(Data Structure)是指相互之间存在一种或多种特定关系的数据元素的集合。按某种逻辑关系组织起来的一批数据,按一定的存储方式把它存储到计算机的存储器中,并在这些数据上定义了一个运算集合,就叫一个数据结构。 数据结构作为计算机的一门学科,主要研究和讨论以下三个方面的问题: ① 数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; ② 在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; ③ 对各种数据进行的运算。 讨论以上问题的主要目的是为了提高数据处理的效率。所谓提高数据处理的效率,主要包括两个方面:一是提高数据处理的速度,二是尽量节省在数据处理过程中所占用的计算机存储空间。 也就是说,数据结构应包括三个方面的内容:数据的逻辑结构、数据的存储结构(物理结构)和数据的运算及实现。 数据的逻辑结构 数据元素的集合以及该集合中各数据元素之间逻辑上的关系,称为数据的逻辑结构。 根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型: 线性结构 非线性结构。 数据的存储结构 数据的存储结构是指数据元素在计算机存储设备中的存储方式,也称为数据的物理结构。它包括数据本身在计算机中的存储方式,以及数据之间的逻辑关系在计算机中的表示。因此,数据的存储结构是依赖于计算机的。 用来存储一个数据结点的存储单元叫做一个存储结点。因为一个数据结点对应一个存储结点,所以存储结点通常也简称为结点。准备用来存储尚未存储数据的存储结点叫空白结点,或叫空结点,自由结点。 数据的存储方式主要有两种: 顺序存储方式,逻辑上相邻的数据元素在存储器中也相邻存储 链接存储方式,逻辑上相邻的数据元素在存储器中不一定相邻,但是存储每个数据元素时都附加了指针(地址)字段,通过设置指针使不相邻的数据元素有了相邻的逻辑关系。 数据结构通常具有的一些基本运算操作: ⑴ 插入 在数据结构的指定位置上添加一个新结点。 ⑵ 删除 删去数据结构中指定位置的结点。 ⑶ 更新 修改数据结构中某个结点的值。 ⑷ 查找 在数据结构中寻找满足指定条件的结点及其位置。 ⑸ 排序 按照指定的顺序,使结点重新排列。 9.2 线性表 线性表的概念 线性表的特点有: 同一性:线性表由同类数据元素组成,每一个ai必须属于同一数据对象。 有穷性:线性表由有限个数据元素组成,表长度就是表中数据元素的个数。 有序性:线性表中相邻数据元素之间存在着序偶关系ai,ai+1。 线性表中的基本运算有: ⑴ 求表长; ⑵ 在线性表的指定位置插入一个数据元素; ⑶ 删除线性表中指定位置的数据元素; ⑷ 取线性表中指定位置的数据元素。 线性表的存储结构 顺序存储结构 链式存储结构 线性表插入运算 线性表删除运算 9.3 栈 栈的基本运算 用一维数组S(1∶m)作为栈的顺序存储空间,其中m为最大容量。 在栈的顺序存储空间S(1∶m)中,S(bottom)为栈底元素,S(top)为栈顶元素。top=0表示栈空;top=m表示栈满。 栈的基本运算有三种:入栈、退栈与读栈顶元素。 ⑴ 入栈运算:入栈运算是指在栈顶位置插入一个新元素。首先将栈顶指针加一(即top加1),然后将新元素插入到栈顶指针指向的位置。当栈顶指针已经指向存储空间的最后一个位置时,说明栈空间已满,不可能再进行入栈操作。这种情况称为栈上溢错误。 ⑵ 退栈运算:退栈是指取出栈顶元素并赋给一个指定的变量。首先将栈顶元素(栈顶指针指向的元素)
文档评论(0)