- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《程序设计基础》教学辅导3-浙江广播电视大学.doc
浙江广播电视大学成人专科工学科电气信息类
计算机网络技术、计算机信息管理专业
“程序设计基础”教学辅导3
说明:本单元辅导内容包括第5章。
第5章 数据结构基础
本章主要介绍有关数据结构的基础知识。
本章重点:线性表的顺序存储结构及其插入和删除操作的基本思想;栈和队列的特点,栈满、栈空、队满、队空的判别方法;树型结构的描述方法。
(1)数据结构研究什么内容?
数据结构一般包含三个方面的内容:数据的逻辑结构、数据的存储结构和数据的运算。
数据的逻辑结构是指数据元素之间的逻辑关系,与数据的在计算机内部是如何存储无关,数据的逻辑结构独立于计算机。
例如在城市交通中,两个地点之间就存在一种逻辑关系,两个地点之间的逻辑关系分为三种:第一种是:两个地点之间有公共汽车可以直达;第二种是:两个地点之间没有公共汽车可以直达,但可以通过中途换乘其他公共汽车而到达;第三种逻辑关系就是:两个地点之间没有公共汽车可以达到。
又如在电话号码本中,电话号码如何进行分类,按照什么顺序进行排列等都是数据之间的逻辑关系。
数据的存储结构是指数据元素在计算机存储设备中的存储方式,可以用顺序存储方式,也可以用链式存储方式。
例如在城市交通的例子中,我们就要研究如何在计算机中表示1个地点,任何在计算机中表示两个地点之间存在一条公共汽车线路,该线路有多长等。
又如对于电话号码资料信息在计算机中如何保存,如何表示资料的分类,如何表示排好顺序的电话号码之间的先后次序关系。
数据的运算主要包括:插入、删除、检索和排序等与问题相关的处理。
例如在城市交通问题中,我们就要设计求两点之间最短线路的算法,要能够判断从城市的任一点出发乘坐公共汽车是否可以达到城市的任何地方。
在电话号码问题中,我们就要设计如何插入一个新的电话号码信息,如何删除一个作废的电话号码信息,如何对电话号码进行快速整理排序,如何高效快速查找资料等算法。
(2)数据的逻辑结构
数据的逻辑结构分为线性结构和非线性结构两大类。
线性结构包括:线性表、栈和队列等。其主要特征为各个数据之间有明确的、唯一的“先后”顺序。在现实生活中具有线性结构的实例非常多,例如我们在日常生活中的排队购物,队列中的每个人都有一个明确先后次序关系。
非线性结构包括树和图型结构。
树型结构的主要特征是结点之间存在着一种层次的关系,每一个结点对应着下一层的多个结点,也就是说,数据元素之间的关系是“一对多”的关系。例如:我们一所学校下面有好几个系,每个系下面有好多班,每个班下面有好多学生。我们说:学校—系—班—学生,每一层之间都是一个一对多的关系,这就是一个典型的树型结构。
而在图型结构中,任何两个结点之间都可能存在着联系,数据元素之间存在着多对多的关系。典型的图型结构就是城市交通。如果城市中有单行线路,则从城市中的一个地点A出发,可以到达N个不同的地方,从城市的M个不同的地方出发又可以到达地点A。城市交通就是一个典型的“多对多”的图型结构。
(3)线性表
日常生活中大量存在着这样的表格,例如一份学生名单表,一张仓库设备清单等,我们把一个人、一台设备都抽象地看成是一个数据元素,这些数据元素之间除了在表中的排列次序即先后次序不同外,没有其它的联系,这一类的表属于线性表。
这里我们使用“结点”的概念来描述线性表。结点就是对数据的一种抽象。例如在学生名单中,我们可以认为一个学生数据就是一个结点,如果一长学生名单有1000人组成,我们就可以抽象地认为,学生名单这样的线性表就是由1000个结点组成的。再比如,在一张仓库设备清单中有800台设备,我们就可以抽象地认为,仓库设备清单就是一张线性表,表中有800个结点。在这样的抽象的意义上,我们就不再关心,我们是处理学生数据还是处理设备数据,我们可以认为我们处理的数据就是“结点”。这样可以使得我们数据结构研究的算法具有通用性和一般性。
那么,从数据结构的角度出发,线性表是n(n≥0)个数据元素组成的有限序列,记为:
(a1,a2……an)
当n=0时,线性表为空表。在线性表中,除了第一个和最后一个数据元素外,每一个数据元素都有一个直接前趋结点和一个直接后继结点。
所谓直接前驱结点就是排列在它的前一个的那一个结点,直接后继结点就是排列在它后面的下一个结点。
线性表中的数据元素在不同的场合代表不同的含义,例如,在学生名单表及仓库设备清单表中不难看出,同一线性表具有相同的数据类型,学生和设备分别是两个表中的数据元素,各自代表不同的含义。
以管理仓库设备清单为例:工厂有时会根据需要,从仓库调出一台设备,或者新购进一批设备以备工程使用,对设备清单表而言,就是要进行删除或添加操作,这就转化为对线性表的运算。
在线性表中的基本运算包括:
1、求表长;
2、在线性表的指定位置插入一个数据元素;
3、删除线性表中指定位置的数据元素;
文档评论(0)