稀疏矩阵十字链表的存储.doc

稀疏矩阵十字链表的存储.doc

ID:56732685

大小:62.50 KB

页数:12页

时间:2020-07-06

稀疏矩阵十字链表的存储.doc_第1页
稀疏矩阵十字链表的存储.doc_第2页
稀疏矩阵十字链表的存储.doc_第3页
稀疏矩阵十字链表的存储.doc_第4页
稀疏矩阵十字链表的存储.doc_第5页
资源描述:

《稀疏矩阵十字链表的存储.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、电子信息学院实验报告书课程名:数据结构题目:稀疏矩阵十字链表的存储实验类别:设计班级:BX1001学号:41姓名:赵艳2011年10月24日1、实验题目(1)掌握稀疏矩阵十字链表存储的方法。(2)掌握稀疏矩阵的显示,查找等基本算法。2、实验内容(1)创建空的稀疏矩阵十字链表存储结构。(2)稀疏矩阵十字链表的数据输入。(3)稀疏矩阵十字链表的数据显示。(4)稀疏矩阵十字链表的数据查找。3、实验要求(1)利用C(C++)语言完成算法设计和程序设计。(2)上机调试通过实验程序。(3)输入右侧矩阵A,检验程序运行结果。(4)给出具体的算法分析,包括时间复杂度和空间复杂度等。(5)

2、撰写实验报告。4、实验步骤与源程序⑴实验步骤先定义各个需要的函数组成部分,然后依次构建四个子函数,分别是新建十字链表、显示十字链表、输入链表元素、查找链表元素;然后是通过主函数对各个子函数的调用,来实现题目的目的。整个程序中主要用到指针定位,for循环,还有switch选择语句。其中对指针的运用很难,很难定位指针,而且指针太多,繁杂。⑵源代码#include#include#include#includestructlinknode{introws,cols;linknode*down,*

3、right;unionvnext{intv;linknode*next;}node;};linknode*CreateMatlind();linknode*InputMatlind(linknode,int);voidShowMatlind(linknode);voidSearchMatlind(linknode*hm,ints);linknode*CreateMatlind(){inti,j,maxlin;linknode*hm,*cp[100],*p;printf("tt请输入稀疏矩阵的行数,列数(用逗号隔开):");scanf("%d,%d",&i,&j);

4、if(i>j)maxlin=i;elsemaxlin=j;hm=newlinknode;cp[0]=hm;for(intl=1;l<=maxlin;l++){p=newlinknode;p->rows=0;p->cols=0;p->down=p;p->right=p;cp[l]=p;cp[l-1]->node.next=p;}cp[maxlin]->node.next=hm;hm=newlinknode;hm->rows=i;hm->cols=j;returnhm;}linknode*InputMatlind(linknode*hm,ints){linknode*cp[1

5、00],*p,*q;intm,n,t;inti,j,k,maxlin;i=hm->rows;j=hm->cols;if(i>j)maxlin=i;elsemaxlin=j;cp[0]=hm;for(intl=1;l<=maxlin;l++){p=newlinknode;p->rows=0;p->cols=0;p->down=p;p->right=p;cp[l]=p;cp[l-1]->node.next=p;}cp[maxlin]->node.next=hm;for(intx=0;x

6、);scanf("%d,%d,%d",&m,&n,&t);p=newlinknode;p->rows=m;p->cols=n;p->node.v=t;k=1;q=cp[m];while(k){if((q->right==cp[m])

7、

8、(q->right->cols>n)){p->right=q->right;q->right=p;k=0;}elseif(q->right->cols==n){p->right=q->right->right;q->right=p;k=0;}elseif(q->right->colsright;k=1;}}k=1;q=cp

9、[n];while(k){if((q->down==cp[n])

10、

11、(q->down->rows>m)){p->down=q->down;q->down=p;k=0;}elseif(q->down->rows==m){p->down=q->down->down;q->down=p;k=0;}elseif(q->down->rowsdown;k=1;}}}returnhm;}voidShowMatlind(linknode*hm){intm,n;linknode*p,*q;m=hm->rows;n=hm->co

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。