大学计算机科学基础上册第4章.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
黄河水利职业技术学院 曾令琴 4.3数组、队列和表 4.3.1 数组 1. 数组的基本概念 数组(Array)是n(n1)个相同类型数据元素a1, a2, …, an构成的有限序列,且该有限序列存储在一块地址连续的内存单元中。由此可见,数组实际是采用顺序结构的线性表。换言之,线性表的顺序存储结构也必然用一维数组来描述。 数组具有以下性质: 数组中的数据元素数目固定,一旦定义了一个数组,其数据元素数目不再有增减的变化。 数组中的数据元素具有相同的数据类型。 数组中的每个数据元素都和一组唯一的下标值对应。 数组是一种顺序存储结构,可随机存取数组中的任意数据元素。 4.3数组、队列和表 4.3.1 数组 2. 数组的存储结构 在一维数组中,一旦a1的存储地址Loc(a1)确定,并假设每个数据元素占d个存储单元,则任一数据元素ai的存储地址就可由以下公式求出: Loc(ai)= Loc(a1)+(i-1)* d 2≤i≤n 该式说明,一维数组中任一数据元素的存储地址可直接计算得到,即一维数组中任一数据元素可直接存取。因此,一维数组是一种顺序存储结构。同样,二维数组及多维数组也满足随机存取特性。 对于一个m行n列的二维数组Am×n,有: 将Am×n简记为A,A可以看作一维数组: A=(a1,a2,…,an) (4.2) 其中,ai=( ai,1,ai,2,…,ai,n)(1≤i≤m) 4.3数组、队列和表 4.3.1 数组 2. 数组的存储结构 显然,二维数组同样满足数组的定义。一个二维数组可以看作是每个元素都是一维数组的一维数组。以此类推,任何多维数组都可以看作一个线性表。 对于二维数组来说,由于计算机的存储结构是线性的,如何用线性的存储结构存放二维数组元素就有一个行/列次序排放问题。对一个(4.1)式的m行n列的二维数组Am×n,当满足(4.2)式时,就是行序为主的存储方式,即先存第一行,然后紧接着存储第二行,最后存储第m行。此时,二维数组的线性排列次序为: a1,1, a1,2, …, a1, n, a2,1, a2,2, …, a2,n, …, am,1, am, 2, …, am,n 对于一个已知以行序为主序的计算机系统中,当二维数组中第一个数据元素a1,1 的存储地址Loc(a1,1)和每个数据元素占用的存储单元d确定后,则该数组中任一数组元素ai,?j的存储地址可由下式确定: Loc(ai,?j)= Loc(a1,1)+[(i-1)*n+(j-1)]*d (4.3) 其中n为列数。 同样,可以知道以列序为主序的计算机系统中有: Loc(ai,?j)= Loc(a1,1)+[(j-1)*m+(i-1)]*d (4.4) 其中m为行数。 4.3数组、队列和表 4.3.2 队列 1. 队列的特点和基本操作 在现实生活中,到处可见队列(Queues)的例子,如买票、等车等的排队,新来的成员总是加入到队列尾,每次离开队列的总是队首的人。 队列这种数据结构也是一种特殊的表,对它的所有插入只能在表的一端进行,所有的删除都在表的另一端进行,允许删除的一端叫队列的头(front),允许插入的一端叫队列的尾(rear)。若给定队列Q=(k1,k2,…,kn),队列的元素是以k1,k2,…,kn的顺序进入,则k1是队列的头,kn是队列的尾。只有在k1,k2,…,kn-1出队后,kn才能出队。也就是说,队列的修改是按“先进先出”(First In First Out,FIFO)的原则进行。因此,队列又称为先进先出表或FIFO表。当队列中没有任何元素时称为空队列。图4.9是队列的示意图。 4.3数组、队列和表 4.3.2 队列 对队列进行的基本操作主要有以下几种: 在队列Q的队尾加入一个新的元素X; 在队列Q的队头删除一个元素; 返回队列Q的队头元素的值,队列保持不变; 判断队列Q是否为空队列; 将队列Q置成空队列。 图4.9 队列的示意图 1. 队列的特点和基本操作 4.3数组、队列和表 4.3.2 队列 2. 队列的存储 和数组一样,队列也有顺序存储和链式存储之分。 在队列的顺序存储中,分

文档评论(0)

xiaohuer + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档