【问题标题】:What is an "orthogonal linked list"?什么是“正交链表”?
【发布时间】:2011-07-05 21:44:26
【问题描述】:

我了解链表是什么,但我的问题是什么是正交链表?我在网上搜索,但找不到任何有用的信息。我正在研究C++中的like list,如果有关于链表的好书,请提供。

【问题讨论】:

  • 这不是一个很常见的术语。你在哪里找到的?

标签: c++ linked-list orthogonal


【解决方案1】:

这不是一个很常见的术语,但根据the Dictionary of Computing,它是一个多维链表,其元素包含指向每个维度中邻居的指针。

取一个简单的矩阵:

1 2 3 
4 5 6
7 8 9

那么,元素 5 将有一个指向 4 和 6 的指针,但也有指向 2 和 8 的指针。

以下问题可能对 C++ 书籍有所帮助:

【讨论】:

  • 所以每个元素最多可以有 4 个传出或传入指针?
  • 嗯,按照这个定义,是的。但是您原则上可以构建具有任意大邻域的链表。这确实是内存与计算的权衡。
  • 附带说明:它在寻路计算(例如游戏)中很有用。
【解决方案2】:

正交链表是行表和列表的组合。 所以你可以用它来表示一个二维数组(因为它也有行和列)

在计算机科学中,我们一般用它来表示稀疏矩阵,从而降低大矩阵相乘的复杂度。

第一个链表由非零行组成,每个节点都指向其右侧和底部的非零元素。

typedef struct Orthogonal_linked_list_node
{
    float some_data;
    int row;
    int column;
    struct _matrix_element *next_row;
    struct _matrix_element *next_column;
}matrixNode;

【讨论】:

    猜你喜欢
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    相关资源
    最近更新 更多