我必须实现一个稀疏矩阵(一个主要为零的矩阵,因此你只记录不同于0的值),但我必须使用二叉搜索树来实现它。
修改
所以现在我正在考虑通过使用行/列作为键来实现它,但是我将什么用作该树的根?
/修改
我希望一旦我研究了二元搜索树,我就会明白这种实现是如何有益的,或者至少是可能的,但我对我的生活无法理解。
我试过谷歌无济于事,我自己无法想象如何尝试这样做。
我还没有确定我将要实现的语言,所以我不需要代码示例,我的问题是逻辑。我需要看看它是如何工作的。
P.S。我不知道要使用什么标签,如果有人可以编辑一些标签,我将不胜感激。
答案 0 :(得分:2)
要使用二叉树,您需要为矩阵中的每个(可能)条目设置一个不同的键。因此,如果您想在矩阵[100,100]中查找(2,4),那么密钥可能类似于“002004”。使用此键,您可以在树中插入值。
对于每个维度,密钥会更长,因此您也可以考虑使用散列函数来散列单元格的坐标,并在树中使用此散列键的条目列表。然后,树只是右侧列表的索引。在列表中,您需要执行顺序搜索。或者,如果您订购列表,则可以使用二进制搜索来改进。