山东大学-数据结构实验报告-矩阵和散列表

山东大学-数据结构实验报告-矩阵和散列表

ID:23454904

大小:3.35 MB

页数:38页

时间:2018-11-08

山东大学-数据结构实验报告-矩阵和散列表_第1页
山东大学-数据结构实验报告-矩阵和散列表_第2页
山东大学-数据结构实验报告-矩阵和散列表_第3页
山东大学-数据结构实验报告-矩阵和散列表_第4页
山东大学-数据结构实验报告-矩阵和散列表_第5页
资源描述:

《山东大学-数据结构实验报告-矩阵和散列表》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、山东大学计算机科学与技术学院数据结构课程实验报告 学号:姓名:徐大鹏班级:实验题目:实验四_矩阵和散列表实验学时:2实验日期:2015.11.24实验目的:掌握特殊矩阵和稀疏矩阵。掌握散列表及其应用。硬件环境: 略软件环境:UbuntuKylin15.0464-bitLinuxGCC4.9.2JavaSERuntimeEnvironment(build1.8.0_60-b27)EclipseIDEforC/C++DevelopersMars.1Release(4.5.1)实验内容与设计:1.实验内容(题目内容,输入要求,输出要求)(1)创建三对角

2、矩阵类,采用按列映射方式,提供store和retrieve方法。(2)创建下三角矩阵类,采用按列映射方式,提供store和retrieve方法。(3)创建稀疏矩阵类,采用行主顺序把稀疏矩阵映射到一维数组中,实现稀疏矩阵的转置和两个稀疏矩阵的加法操作。(4)使用散列表设计实现一个字典,假设关键字为整数且D为961,在字典中插入随机产生的500个不同的整数,实现字典的建立和搜索操作。分别使用线性开型寻址和链表散列解决溢出。2.数据结构与算法描述(整体思路描述,所需要的数据结构与算法)对问题一,从数学上推导得出三对角方阵列主映射的函数关系式i=2c+r

3、-3其中i为元素在数组e中的下标,c为列数,r为行数,c≥1且r≥1。以此关系式为TridiagonalMatrix类编写了Store和Retrieve函数,并扩展编写了Input函数和Output函数。对问题二,从数学上推导得出下三角方阵列主映射的函数关系式i=n×(c-1)-1+r+c×(1-c)/2其中i为元素在数组e中的下标,n为方阵的大小,c为列数,r为行数,c≥1且r≥1。以此关系式为LowerTriangularMatrix类编写了Store和Retrieve函数,并扩展编写了Input函数和Output函数。对问题三,仿课本所述,

4、定义Term类作为SparseMatrix类的友元类,包含行、列、值三个要素的成员变量,用Term类的数组实现稀疏矩阵的行主映射存储。查找行为的实现方式是,找到位于目标元素前一行的最后一个元素,再从这个元素开始向下搜索,直到找到和目标元素同一行但是列数小于目标元素的元素a[k-1],然后决定下一步的行为————插入一个新项Term作为a[k]并将已有元素向后移位,还是修改已存在的项a[k]。以此原理编写了Store和Retrieve函数,并扩展编写了Input函数和Output函数。对问题四,仿照课本例子编写了有序链表类SortedChain、开

5、放寻址的散列表类HashTable、基于有序链表链接的散列表类ChainHashTable,并对这三个类分别扩展编写了Output函数。3.测试结果(测试输入,测试输出)问题一:问题二:上图显示了输入不符合下三角方阵约束时,抛出异常并退出程序。上图是正常运行的结果。问题三:普通的输入和输出操作如下:矩阵相加:矩阵转置:问题四:以上图的数据为例。从346就应该在链表链接的散列表上看到开放寻址解决冲突的例子。返回开放寻址的输出段,可以看到符合预期的结果:4.实现源代码(程序风格清晰易理解,有充分的注释)/**TridiagonalMatrix.h**

6、Createdon:Nov22,2015*Author:xudp*/#ifndefTRIDIAGONALMATRIX_H_#defineTRIDIAGONALMATRIX_H_#includeusingnamespacestd;templateclassTridiagonalMatrix{public://1、创建三对角矩阵类,采用按列映射方式,提供store和retrieve方法。TridiagonalMatrix(intsize=10);~TridiagonalMatrix();//row>0,column

7、>0TridiagonalMatrix&Store(introw,intcolumn,constT&value);TRetrieve(introw,intcolumn);voidInput(istream&in,ostream&out);voidOutput(ostream&out)const;friendostream&operator<<(ostream&out,constTridiagonalMatrix&matrix){matrix.Output(out);returnout;}friendistream&operator>>

8、(istream&in,TridiagonalMatrix&matrix){matrix.Input(in,cout);retur

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

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

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