基于哈希表构建高效 矩阵存储结构--矩阵的一种存储方法 哈希矩阵。

本文探讨了使用哈希表作为矩阵存储结构的优势,包括节省空间和简化操作。作者指出,哈希矩阵适用于稀疏矩阵,可以方便地进行添加、删除和查找操作,并提供了C#实现的哈希矩阵类,包括枚举遍历、按行和按列遍历的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:这是一个自己的探索性的研究,自己对数据结构这门课本身掌握的不是非常扎实,纰漏之处敬请评论指正:

最近写论文要用到交叉口元胞矩阵的建模,需求是这样的。给定矩阵的x,y坐标,求该坐标上的元胞网格。

共有几种运算。

1  判断矩阵(x,y)处 有没有元胞

2  获取(x,y)处的矩阵元素

3 移动元素在矩阵中的位置,从(xO,yO)移动到(xD,yD

4 遍历矩阵中的元素并且进行处理

 

个人觉得十字链表太恶心,添加删除节点,内部的数据如指针等都要自己维护,烦得很。三元组的三个域也很有意思(x,y,你想要存储的数据),多个三元组本身还有一个存储的问题,当然最简单的就是线形存贮。利用三元素数组进行矩阵记录,本身又引入了三元组数组的管理问题。二维数组的方式简单直观,二维数组存贮稀疏矩阵空间浪费严重。这里,我是使用哈希表做矩阵的存贮结构。

插播个广告:

      个人认为数据结构这门课,不管是什么语言实现,引入新的数据结构都使用最原始的数据类型如int char 进行重建,各种数据结构类型之间并没有很好相互利用,有点每次都从头开始的意思。而且不鼓励思考,直接给出实现方法的内容安排,也是容易让人认为这种数据结构的实现就书本上的几种方法。这不利于我们工程研究中设计出更好的更快速的数据结构。换句话说,这门课没有给它的学习者留下想象和提高的空间,直接给出答案,缺乏对学习者自身的思考创新的鼓励。

          利用哈希表存贮矩阵好处简直一大堆,例如你不需要考虑你要存贮的矩阵是不是稀疏,分贝对矩阵采用不同的存储方式,哈希矩阵足够节省空间了(浪费的空间数就是哈希表为了解决冲突引入的额外的的空间数),如果你是完美主义者,喜欢要更好更节省空间的矩阵存储方法,那么恭喜你,你可以不用思考如何存贮矩阵了,直接思考如何构造更高效的哈希函数即可,说不定还能在前人的基础上提高那么几个百分点,这很难,按照现有的理论已经是或者是接近存储空间最优了。个人认为:哈希表使用了一种很好的思想,就是将如何找到 最优间节省的存贮结构 这样一个问题转变为如何找到一个高效的哈希函数,提取了思考的重点,缩小了思考的范围,将实现与设计的分离,降低了复杂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值