您所在位置: 网站首页 / 文档列表 / C/C++资料 / 文档详情
数组与广义表学习教案.pptx 立即下载
上传人:王子****青蛙 上传时间:2024-09-04 格式:PPTX 页数:43 大小:355KB 金币:6 举报 版权申诉
预览加载中,请您耐心等待几秒...

数组与广义表学习教案.pptx

数组与广义表学习教案.pptx

预览

免费试读已结束,剩余 33 页请下载文档后查看

6 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学数组数组的定义(dìngyì)和初始化一维数组存储(cúnchǔ)方式类似于线性表,一个二维数组的逻辑结构可形式地表示为:2_Array=(D,R)其中D={aij(i=0,1,…,m-1,j=0,1,…,n-1)},aij是同类型数据元素的集合。R={ROW,COL}是数据元素上关系的集合。ROW={<aij,ai(j+1)>|0<=i<=m-1,0<=j<=n-2}每一行(yīxíng)上的列关系。COL={<aij,a(i+1)j>|0<=i<=m-2,0<=j<=n-1}每一列上的行关系。三维数组n维数组二维数组三维数组特殊矩阵的压缩(yāsuō)存储对称(duìchèn)矩阵的压缩存储为节约存储空间,只存对角线及对角线以上的元素,或者只存对角线及对角线以下的元素。前者称为上三角矩阵,后者称为下三角矩阵。把它们按行存放于一个(yīɡè)一维数组B中,称之为对称矩阵A的压缩存储方式。数组B共有n+(n-1)++1=n*(n+1)/2个元素。上三角(sānjiǎo)矩阵若i<j,数组元素A[i][j]在矩阵的上三角部分,在数组B中没有存放,可以找它的对称元素A[j][i]:=j*(j+1)/2+i若已知某矩阵元素位于数组B的第k个位置,可寻找(xúnzhǎo)满足i(i+1)/2k<(i+1)*(i+2)/2的i,此即为该元素的行号。j=k-i*(i+1)/2此即为该元素的列号。例,当k=8,3*4/2=6k<4*5/2=10,取i=3。则j=8-3*4/2=2。若ij,数组元素A[i][j]在数组B中的存放位置为n+(n-1)+(n-2)++(n-i+1)+j-i==(2*n-i+1)*i/2+j-i==(2*n-i-1)*i/2+j若i>j,数组元素A[i][j]在矩阵的下三角部分,在数组B中没有存放。因此(yīncǐ),找它的对称元素A[j][i]。A[j][i]在数组B的第(2*n-j-1)*j/2+i的位置中找到。三对角矩阵(jǔzhèn)的压缩存储三对角矩阵中除主对角线及在主对角线上下最临近的两条对角线上的元素外,所有其它元素均为0。总共有3n-2个非零元素。将三对角矩阵A中三条对角线上的元素按行存放(cúnfàng)在一维数组B中,且a00存放(cúnfàng)于B[0]。在三条对角线上的元素aij满足0in-1,i-1ji+1在一维数组B中A[i][j]在第i行,它前面有3*i-1个非零元素,在本行中第j列前面有j-i+1个,所以元素A[i][j]在B中位置为k=2*i+j。若已知三对角矩阵中某元素(yuánsù)A[i][j]在数组B[]存放于第k个位置,则有i=(k+1)/3j=k-2*i例如,当k=8时,i=(8+1)/3=3,j=8-2*3=2当k=10时,i=(10+1)/3=3,j=10-2*3=4稀疏(xīshū)矩阵(SparseMatrix)稀疏矩阵(jǔzhèn)的抽象数据类型(三元组顺序表)#defineMAXSIZE12500typedefstruct{inti,j;//非零元素行号/列号ElemTypee;//非零元素的值}Triple;//三元组typedefunion{Tripledata[MAXSIZE+1];intmu,nu,tu;//矩阵(jǔzhèn)行数、列数、非零元个数}TSMatrix;//稀疏矩阵(jǔzhèn)类定义用三元组表表示的稀疏矩阵(jǔzhèn)及其转置稀疏矩阵转置算法(suànfǎ)思想方法一:按照M(m*n)的列序来进行转置设矩阵列数为nu,对矩阵三元组表扫描nu次。第k次检测列号为k的项。第k次扫描找寻所有列号为k的项,将其行号(xínɡhào)变列号、列号变行号(xínɡhào),顺次存于转置矩阵三元组表。稀疏矩阵的转置(zhuǎnzhì)StatusTransposeSMatrix(TSMatrixM,TSMatrix&T){T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;//转置(zhuǎnzhì)矩阵的列数,行数和非零元素个数if(T.tu){q=1;//矩阵T的指针for(col=1;col<=M.nu;++col)for(p=1;p<=M.tu;++p)//矩阵M的指针if(M.data[p].j==col){T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++q;}}returnO
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

数组与广义表学习教案

文档大小:355KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用