如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
会计学数组(array)是最常用的数据结构之一。几乎所有的程序设计语言(yǔyán)都把数组类型设定为固有类型。数组是由下标和值组成的序对集合。在数组中,一旦给定下标,都存在一个与其(yǔqí)相对应的值,这个值就称为数组元素。可以把二维数组看成是这样一个定长线性表:它的每个数据(shùjù)元素也是一个定长线性表。5.1.2数组的抽象(chōuxiàng)类型定义8由于内存储器的结构是一维的。一维数组可直接采用顺序存储。用一维的内存存储表示多维数组时,需按某种次序将数组中元素排成一线性序列,再将这个(zhège)线性序列存放在一维的内存中,即数组的顺序存储结构表示。用顺序存储结构来存储数组中的元素,一定要按照(ànzhào)某种次序将元素排成一个线性序列。有两种存储方式:a21a12(1)一维数组的地址计算:设一维数组为:A=(a1,a2,…,ai,…,an),数组中每个元素占size个存储单元(cúnchǔdānyuán),则元素ai的存储地址为:Loc(A[i])=Loc(A[1])+(i-1)*size。矩阵(matrix)是很多科学与工程计算问题中研究的数学对象。在数据结构中,我们感兴趣的不是矩阵本身,而是如何存储矩阵的元素而使矩阵的各种运算能够(nénggòu)有效地进行。特殊矩阵(jǔzhèn)的压缩存储假若相同的元素或者零元素在矩阵中的分布有一定规律,则称特殊(tèshū)矩阵。特殊(tèshū)矩阵主要有3种:对称矩阵、三角矩阵、带状矩阵。对于对称矩阵,可以为每一对对称元只分配(fēnpèi)一个存储空间,这样就可以将n2个元压缩存储到n(n+1)/2个元的空间中。三角矩阵分为下三角矩阵和上三角矩阵。所谓下(上)三角矩阵是指矩阵的上(下)三角(不包括(bāokuò)对角线)中的元均为常数c或为零的n阶矩阵。一个n阶方阵,若它的全部非零元素(yuánsù)落在一个以对角线为中心的带状区域中,则称该矩阵为带状矩阵,或对角矩阵。这个带状区域若包含主对角线上下各b条对角线道上元素(yuánsù),那么,b称为该带状矩阵的半带宽,或称该带状矩阵的带宽为(2b+1)。在带状矩阵(jǔzhèn)中,当|i-j|>b时,aij=0。该方阵共有(2b+1)n-(b+1)b个非零元素。带状矩阵中最常见(chánɡjiàn)的是三对角带状矩阵。1.确定存储该矩阵所需的一维向量空间的大小除第一行和最后(zuìhòu)一行只有两个元素外,其余各行均有3个非零元素,由此得到一维向量所需的空间大小为:3n-2按照压缩存储(cúnchǔ)的概念,只存储(cúnchǔ)稀疏矩阵的非零元素。因此,除了存储(cúnchǔ)非零元素的值aij之外,还必须同时记下非零元素所在矩阵的行i号和列j号。反之,一个三元组(i,j,aij)唯一确定了矩阵的一个非零元素。因此,稀疏矩阵可以由表示非零元的三元组及其矩阵的总的行列数唯一确定。01290000#defineMAXSIZE1000//假设(jiǎshè)非零元个数的最大值为100001290000(2)利用(lìyòng)三元组顺序表实现矩阵的转置运算33使b.data中的三元组以T的行(M的列)为主序依次(yīcì)排列的方法有如下两种:①算法(suànfǎ)思想voidTransposeTSMatrix(TSMatrixA,TSMatrix*B){//采用三元组表结构,求稀疏矩阵(jǔzhèn)A的转置矩阵(jǔzhèn)B。在程序中,inti,j,k;//j指示B->data中三元组的序号,//i指示A.data中三元组的序号,//k指示A的列号(即B的行号)for(k=1;k<=A.n;k++)for(i=1;i<=A.len;i++)if(A.data[i].col==k){//进行(jìnxíng)转置③算法(suànfǎ)分析40当矩阵非零元素的位置或个数经常变动时,就不易采用顺序存储结构表示三元组的线性表。例如(lìrú),在进行“将矩阵B加到矩阵A上”的操作时,由于非零元素的插入或删除将会引起A.data中元素的大量移动。为此,对这种类型的矩阵,采用链式存储结构表示三元组的线性表更为恰当。(1)稀疏矩阵(jǔzhèn)的十字链表存储表示typedefstructOLNode{//结点定义introw,col;//该非零元的行和列下标ElementTypevalue;//该非零元的值structOLNode*right,*down;//该非零元所在(suǒzài)的行表和列表的后继链域}OLNode;*Olink;CreateSMatrix_OL(CrossList*M){//创建稀疏矩阵(jǔzhèn)M。