最新【考研计算机专业课】武汉大学数据结构PPT课件 第5章数组(共48张PPT课件).pptx
《最新【考研计算机专业课】武汉大学数据结构PPT课件 第5章数组(共48张PPT课件).pptx》由会员分享,可在线阅读,更多相关《最新【考研计算机专业课】武汉大学数据结构PPT课件 第5章数组(共48张PPT课件).pptx(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5章章 数组和数组和稀疏稀疏(xsh)矩阵矩阵 5.1 数组数组5.2 稀疏稀疏(xsh)矩阵矩阵数据结构数据结构(sh j ji u)基础第基础第2章章2.5和和2.6节节p5877第一页,共四十八页。5.1.1 数组的基本概念数组的基本概念 从逻辑结构上看,数组从逻辑结构上看,数组A是是n(n1)个相同类型数据元素)个相同类型数据元素a1,a2,an构成的有限序列,其逻辑表示为:构成的有限序列,其逻辑表示为: A=(a1,a2,an) 其中,其中,ai(1in)表示数组)表示数组A的第的第i个元素。个元素。 一个二维数组可以看作是每个数据元素都是相同类型的一维数一个二维数组可以看作是每
2、个数据元素都是相同类型的一维数组的一维数组。以此类推,任何多维数组都可以看作一个线性表,组的一维数组。以此类推,任何多维数组都可以看作一个线性表,这时线性表中的每个数据元素也是一个线性表。多维数组是线性表这时线性表中的每个数据元素也是一个线性表。多维数组是线性表的推广。的推广。 推广到推广到d(d3)维数组,不妨把它看作一个由)维数组,不妨把它看作一个由d-1维数组作维数组作为数据元素的线性表;或者这样理解,它是一种较复杂的线性表为数据元素的线性表;或者这样理解,它是一种较复杂的线性表结构,由简单结构,由简单(jindn)的数据结构即线性表的数据结构即线性表辗转合成而得。辗转合成而得。第二页,
3、共四十八页。5.1.2 数组的存储结构数组的存储结构(jigu) 在一维数组中在一维数组中,一旦一旦a1的存储地址的存储地址LOC(a1)确定确定,并假设每个数据并假设每个数据元素占用元素占用k个存储单元个存储单元,则任一数据元素则任一数据元素ai的存储地址的存储地址LOC(ai)就可由就可由以下公式求出:以下公式求出: LOC(ai)=LOC(a1)+(i-1)*k (0in) 上式说明上式说明,一维数组中任一数据元素的存储地址可直接计算得到一维数组中任一数据元素的存储地址可直接计算得到,即一维数组中任一数据元素可直接存取即一维数组中任一数据元素可直接存取,因此因此,一维数组是一种随机一维数
4、组是一种随机存储结构。同样存储结构。同样,二维及多维数组也满足随机存储特性。二维及多维数组也满足随机存储特性。第三页,共四十八页。nmmmnnnmaaaaaaaaaA,2,1 ,22,21 ,2, 12, 11 , 1.对于对于(duy)一个一个m行行n列的二维数组列的二维数组Amn,有:有: 将将Am*n简记为简记为A,可以可以(ky)看成是这样的一维数组:看成是这样的一维数组: A=(a1,a2,ai,am)其中,其中,ai=(ai,1,ai,2,ai,n) (1im)。第四页,共四十八页。 对于二维数组来说对于二维数组来说,由于计算机的存储结构是线性的由于计算机的存储结构是线性的,如何用
5、线如何用线性的存储结构存放二维数组元素就有一个行列次序排放问题。性的存储结构存放二维数组元素就有一个行列次序排放问题。 以行序为主序的存储方式:即先存储第以行序为主序的存储方式:即先存储第1行行,然后紧接着存然后紧接着存储第储第2行行,最后存储第最后存储第m行。此时行。此时(c sh),二维数组的线性排列次序二维数组的线性排列次序为:为: a1,1,a1,2,a1,n,a2,1,a2,2,a2,n,am,1,am,2,am,n第五页,共四十八页。 对一个已知以行序为主序的计算机系统中对一个已知以行序为主序的计算机系统中,当二维数组第一个数当二维数组第一个数据元素据元素a1,1的存储地址的存储地
6、址(dzh)LOC(a1,1)和每个数据元素所占用的存储单和每个数据元素所占用的存储单元元k确定后确定后,则该二维数组中任一数据元素则该二维数组中任一数据元素ai,j的存储地址可由下式确定:的存储地址可由下式确定: LOC(ai,j)=LOC(a1,1)+(i-1)*n+(j-1)*k 其中其中n为列数。为列数。第六页,共四十八页。 同理可推出在以列序为主序的计算机系统中有:同理可推出在以列序为主序的计算机系统中有: LOC(ai,j)=LOC(a1,1)+(j-1)*m+(i-1)*k 其中其中(qzhng)m为行数。为行数。第七页,共四十八页。 例例5.1 按行优先顺序和按列优先顺序列出四
7、维按行优先顺序和按列优先顺序列出四维(s wi)数组数组A2222所有元素在内存中的存储次序。所有元素在内存中的存储次序。第八页,共四十八页。 解:解: 按行优先按行优先(yuxin)的存储次序的存储次序: A0000, A0001, A0010, A0011, A0100, A0101, A0110, A0111, A1000, A1001, A1010, A1011, A1100, A1101, A1110, A1111第九页,共四十八页。 按列优先按列优先(yuxin)(yuxin)的存储次序的存储次序: : A0000, A1000, A0100, A1100, A0010, A101
8、0, A0110, A1110, A0001, A1001, A0101, A1101, A0011, A1011, A0111, A1111第十页,共四十八页。 例例5.2 对二维数组对二维数组float a54计算:计算: (1)数组)数组a中的数组元素数目;中的数组元素数目; (2)若数组)若数组a的起始地址为的起始地址为2000,且每个数组元素长度且每个数组元素长度(chngd)为为32位位(即即4个字节个字节),数组元素数组元素a32的内存地址。的内存地址。 第十一页,共四十八页。 解:该数组的元素数目共有解:该数组的元素数目共有5*4=20个。个。 又由于又由于(yuy)C语言采用
9、行序为主序的存储方式语言采用行序为主序的存储方式,则有:则有: LOC(a3,2)=LOC(a0,0)+(i*n+j)*k =2000+(3*4+2)*4=2056第十二页,共四十八页。 几种几种(j zhn)特殊矩阵:特殊矩阵:(1)对称矩阵)对称矩阵(2)上三角矩阵下三角矩阵)上三角矩阵下三角矩阵(3)对角矩阵)对角矩阵它们都是方阵它们都是方阵,即行数和列数相同。即行数和列数相同。第十三页,共四十八页。 1. 对称矩阵的压缩存储对称矩阵的压缩存储 若一个若一个n阶方阵阶方阵Ann中的元素满足中的元素满足ai,j=aj,i(0i,jn-1),则称则称其为其为n阶阶对称矩阵对称矩阵。 由于对称
10、矩阵中的元素关于主对角线对称由于对称矩阵中的元素关于主对角线对称,因此因此(ync)在存储时可在存储时可只存储对称矩阵中上三角或下三角中的元素只存储对称矩阵中上三角或下三角中的元素,使得对称的元素共享一使得对称的元素共享一个存储空间。这样个存储空间。这样,就可以将就可以将n2个元素压缩存储到个元素的空间中。个元素压缩存储到个元素的空间中。不失一般性不失一般性,我们以行序为主序存储其下三角我们以行序为主序存储其下三角(包括对角线包括对角线)的元素。的元素。第十四页,共四十八页。 n2个元素个元素(yun s) n(n+1)/2个元素个元素 A0.n-1,0.n-1 B0.n(n+1)/2-1 a
11、ij bk21)i(i k=+ j ij+ i ij21)j(j 第十五页,共四十八页。上三角上三角(snjio)矩阵:矩阵: 2)12(* ini2)1( nnk=+ j i ij时时ij时时第十六页,共四十八页。下三角下三角(snjio)矩阵:矩阵: jii2)1(* 2)1( nnk= ij时时ij时时第十七页,共四十八页。 2. 对角矩阵的压缩存储对角矩阵的压缩存储 若一个若一个n阶方阵阶方阵A满足其所有非零元素都集中在以主对角线为中心满足其所有非零元素都集中在以主对角线为中心的带状区域的带状区域(qy)中中,则称其为则称其为n阶对角矩阵阶对角矩阵。其主对角线上下方各有其主对角线上下方
12、各有b条次对角线条次对角线,称称b为矩阵半带为矩阵半带宽宽,(2b+1)为矩阵的带宽。对于半带宽为为矩阵的带宽。对于半带宽为b(0b(n-1)/2)的对角的对角矩阵矩阵,其其|i-j|b的元素的元素ai,j不为零不为零,其余元素为零。其余元素为零。下图所示是半带宽为下图所示是半带宽为b的对角矩阵示意图。的对角矩阵示意图。第十八页,共四十八页。 . b条条 b条条 0 0 . 半带宽半带宽(di kun)(di kun)为为b b的对角矩阵的对角矩阵 第十九页,共四十八页。当当b1时称为三对角时称为三对角(du jio)矩矩阵。阵。其压缩地址计算公式如下:其压缩地址计算公式如下: k=2i+j
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研计算机专业课 最新【考研计算机专业课】武汉大学数据结构PPT课件 第5章 数组共48张PPT课件 最新 考研 计算机 专业课 武汉大学 数据结构 PPT 课件 数组 48
限制150内