ImageVerifierCode 换一换
格式:PPT , 页数:41 ,大小:157.70KB ,
文档编号:4709917      下载积分:25 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4709917.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(稀疏矩阵和广义表课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

稀疏矩阵和广义表课件.ppt

1、 1稀疏矩阵稀疏矩阵:非零元素个数远远少于零元素个数的矩阵非零元素个数远远少于零元素个数的矩阵 0000280000000091039000000006000017000110150022000A76 三元组线性表表示:三元组线性表表示:(1,4,22),(1,7,15),(2,2,11),(2,6,17),(3,4,-6),(4,6,39),(5,1,91),(6,3,28)2 2稀疏矩阵的三元组线性表表示稀疏矩阵的三元组线性表表示 稀疏矩阵若用二维数组存储太浪费空间。稀疏矩阵若用二维数组存储太浪费空间。一般只考虑存储非零元素,每个非零元素一般只考虑存储非零元素,每个非零元素可由行可由行、列

2、列、值三元组值三元组(i,j,(i,j,a aijij)表示,三元表示,三元组按行号为主序、列号为辅序进行排列,构成组按行号为主序、列号为辅序进行排列,构成一个表示稀疏矩阵的一个表示稀疏矩阵的三元组线性表。三元组线性表。三元组线性表可用顺序或链接方式存储。三元组线性表可用顺序或链接方式存储。3 3稀疏矩阵的抽象数据类型稀疏矩阵的抽象数据类型ADT SparseMatrix is Data:用用三元组线性表表示的稀疏矩阵,三元组线性表表示的稀疏矩阵,用类型名用类型名SMatrix表示表示 Operation:void InitMatrix(SMatrix&M);SMatrix Transpose

3、(SMatrix&M);SMatrix Add(SMatrix&M1,SMatrix&M2);SMatrix Multiply(SMatrix&M1,SMatrix&M2);void InputMatrix(SMatrix&M,int m,int n);void OutputMatrix(SMatrix&M);end SparseMatrix有顺序和链接两种有顺序和链接两种三元组线性表及其行数三元组线性表及其行数、列数列数、非零元个数。非零元个数。1.顺序存储顺序存储2.2.用顺序结构存储三元组线性表,即用顺序结构存储三元组线性表,即数组的每个元数组的每个元素对应一个非零元的三元组。素对应一个

4、非零元的三元组。7 0 0 0 15 0 0 0 0 0 0 0 -2 0 0 0 0 21 0 0 0 -1 0 0A=12345rowcolval1 171 51534 -141 -246 21sm:MaxTermsmnt465非零元以行序为主序存储非零元以行序为主序存储(1,1,7),(1,5,15),(3,4,-1),(4,1,-2),(4,6,21)2.链接存储链接存储 用链接结构存储三元组线性表用链接结构存储三元组线性表(1)带行指针向量的链接存储)带行指针向量的链接存储 每一行的非每一行的非零元零元对应一个单链表对应一个单链表(按列号次序按列号次序),用一维数组保存所有单链表的头

5、指针用一维数组保存所有单链表的头指针。7 0 0 0 15 0 0 0 0 0 0 0 -2 0 0 0 0 21 0 0 0 -1 0 0A=(1,1,7),(1,5,15),(3,4,-1),(4,1,-2),(4,6,21)12341 1 71 5 15 3 4 -1 4 1 -2 4 6 21 vectormnt465带行指针向量的链接存储结构(2)十字链接存储)十字链接存储 既带既带行指针向量,又带列指针向量,行指针向量,又带列指针向量,每一个结点每一个结点同时位于两个单链表中同时位于两个单链表中。7 0 0 0 15 0 0 0 0 0 0 0 -2 0 0 0 0 21 0 0

6、0 -1 0 0A=515 11-2 4621 41714-1 3col val right down row cvrv (1,1,7),(1,5,15),(3,4,-1),(4,1,-2),(4,6,21)12345rowcolval M.sm:MaxTermsM.mM.nM.t000 1 2 .MaxRows.M.vectorM.mM.nM.t00012345rowcolval M.sm:MaxTermsM.mM.nM.t 1 2 .MaxRows.M.vectorM.mM.nM.t 7 0 0 0 15 0 0 0 0 0 0 0 -2 0 0 0 0 21 0 0 0 -1 0 0A=

7、1234m.trowcolval1 171 51534 -141 -246 21sm:输出:输出:(1,1,7),(1,5,15),(3,4,-1),(4,1,-2),(4,6,21)7 0 0 0 15 0 0 0 0 0 0 0 -2 0 0 0 0 21 0 0 0 -1 0 0A=12345rowcolval1 171 51534 -141 -246 21sm:123451 171 4-243 -151 1564 21 7 0 0 -2 0 0 0 0 0 0 -1 0 0 0 0 0 A=15 0 0 0 0 0 0 21 4*66*4 12345rowcolval1 171 515

8、34 -141 -246 211 171 4-243 -151 1564 2112345rowcolval i /S存放转置矩阵存放转置矩阵for(i=1;i=M.t;i+)num M.smi.col+;LMatrix Add(LMatrix M1,LMatrix M2)int k=0;/统计非零元个数统计非零元个数 Triple*p1,*p2,*p,*newptr;LMatrix M;InitMatrix(M);M.m=M1.m;M.n=M1.n;if(M1.t=0)&(M2.t=0)return M;for(int i=1;icol col)*newptr=*p1;p1=p1-next;e

9、lse if(p1-col p2-col)*newptr=*p2;p2=p2-next;else if(p1-val+p2-val=0)p1=p1-next;p2=p2-next;continue;else *newptr=*p1;newptr-val+=p2-val;p1=p1-next;p2=p2-next;/以下插入以下插入newptr到第到第i行链尾,并后移行链尾,并后移p指针指针 newptr-next=NULL;if(p=NULL)M.vectori=newptr;else p-next=newptr;p=newptr;k+;/while while(p1!=NULL)newptr

10、=new TripleNode;*newptr=*p1;newptr-next=NULL;if(p=NULL)M.vectori=newptr;else p-next=newptr;p=newptr;p1=p1-next;k+;/while while(p2!=NULL)newptr=new TripleNode;*newptr=*p2;newptr-next=NULL;if(p=NULL)M.vectori=newptr;else p-next=newptr;p=newptr;p2=p2-next;k+;/while /for M.t=k;return M;O(M1.t+M2.t)广义表广义

11、表是线性表的推广。是线性表的推广。广义表广义表是是 n(n=0)n(n=0)个数据元素个数据元素a a1 1,a,a2 2,,a an n 构成的有限序列,数构成的有限序列,数据元素可以是单个元素(称为据元素可以是单个元素(称为单元素单元素),也可以是),也可以是广义表(称为广义表(称为子表子表或或表元素表元素)。)。广义表广义表是一种递归是一种递归的数据结构。的数据结构。广义表广义表一般表示为一般表示为:LS=(a1,a2,,an)n n 称为称为广义表的广义表的长度长度,n=0 n=0 时称为时称为空表空表 表示法:表示法:小写字母表示单元素,大写字母表示表元素小写字母表示单元素,大写字母

12、表示表元素 A=()B=(d)C=(a,(b,c)D=(A,B,C)=(),(d),(a,(b,c)A()B(d)C(a,(b,c)D(A(),B(d),C(a,(b,c)表的表的深度深度指括号嵌套的最大次数。指括号嵌套的最大次数。A A和和B B的深度为的深度为1 1,C C的深度为的深度为2 2,D D的深度为的深度为3 3。dabcdabcA BCD A BC A=NULL0 d 0 a 1 0 b 0 c BC1 1 1 0 d 0 a 1 0 b 0 c D不带表头附加结点的链接结构不带表头附加结点的链接结构A=()B=(d)C=(a,(b,c)D=(A,B,C)=(),(d),(a

13、,(b,c)A1 B1 0 a 1 0 b 0 c C1 0 d 带表头附加结点的链接结构带表头附加结点的链接结构A=()B=(d)C=(a,(b,c)D=(A,B,C)=(),(d),(a,(b,c)2.递归算法如下:递归算法如下:(也可用非递归算法)也可用非递归算法)3.int Length(GLNode*GL)O(n)(n为结为结点数)点数)4.5.if(GL!=NULL)6.return 1+Length(GL-next);7.else8.return 0;9.采用不带表头附加结点的链接结构采用不带表头附加结点的链接结构 递归算法如下递归算法如下:(深度为所有子表中的最大深度加深度为所

14、有子表中的最大深度加1)int Depth(GLNode*GL)O(n)(n为结点数)为结点数)int dep,max=0;while(GL!=NULL)if(GL-tag=1)dep=Depth(GL-sublist);if(depmax)max=dep;GL=GL-next;return max+1;A=()#;B=(d)d;C=(a,(b,c)a,(b,c);D=(),(d),(a,(b,c)(#),(d),(a,(b,c);扫描每一个输入的字符,根据不同类型作不同扫描每一个输入的字符,根据不同类型作不同处理。若是空表(处理。若是空表(#),直接结束;若是单元素(字),直接结束;若是单元

15、素(字母),先建立新结点,再递归调用建立后续结点或母),先建立新结点,再递归调用建立后续结点或结束;若是子表(结束;若是子表((),先递归调用建立子表,),先递归调用建立子表,再递归调用建立后续结点或结束。再递归调用建立后续结点或结束。void Create(GLNode*&GL)O(n)(n为读入的字符数)为读入的字符数)char ch;cinch /只可能读入只可能读入#、(及字母及字母 if (ch=#)GL=NULL;/建立空表建立空表 else if(ch=()/递归构造子表递归构造子表 GL=new GLNode;GL-tag=1;Create(GL-sublist);else /

16、建立单元素结点建立单元素结点 GL=new GLNode;GL-tag=0;GL-data=ch;cinch;/只可能读入只可能读入,、)及及;if(GL!=NULL)if(ch=,)Create(GL-next);/递归构造后继表递归构造后继表 else if(ch=)|(ch=;)GL-next=NULL;MPrint:输出广义表最外层的一对括号,调用输出广义表最外层的一对括号,调用Print 输出广义表其余内容。输出广义表其余内容。Print:先输出第一个元素(若是非空子表,则先输出第一个元素(若是非空子表,则递归调用输出),再递归调用输出后继表。递归调用输出),再递归调用输出后继表。void MPrint(GLNode*GL)O(n)(n为结点数)为结点数)/输出广义表最外层的一对括号,其余内容调用输出广义表最外层的一对括号,其余内容调用Print输出输出 cout(;if (GL=NULL)cout#;else Print(GL);couttag=1)/子表结点子表结点 coutsublist=NULL)coutsublist);/递归输出子表递归输出子表 cout);else coutdata;/单元素结点单元素结点 if(GL-next!=NULL)coutnext);/递归输出后继表递归输出后继表 3.5.4简单程序举例

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|