c++ - 将二维矩阵解析为链表

标签 c++ matrix linked-list

这是我想以链接列表形式表示的矩阵 alt text

想法是它是一个二维矩阵。红色字体是常规的 [i][j],蓝色字体是我想存储在链接列表中的额外信息。

在这个矩阵中,我需要存储一些信息。

  1. 整行
  2. int colm
  3. int label [如蓝色所示]
  4. bool值(要显示在屏幕上的值)
  5. *** 对
  6. *** 离开了
  7. ***起来
  8. ***下来

问题是如果我创建 4 个数组指针 [用于二维矩阵],我将获得 4 个链接列表?我什至如何获得方向指针???

如果你很好奇,我正在努力解决卡诺图。 link text

感谢任何帮助。谢谢!

最佳答案

不要使用链表,使用二维数组。快速且肮脏(且不完整):

struct Matrix {
    struct Entry {
        int label;
        bool value;
    };

    Entry *array;
    size_t rowlen;

    Matrix(int n) : rowlen(n) { array = new Entry[n*n]; }
    ~Matrix() { delete[] array; }

    Entry &at(int i, int j) { return array[i * rowlen + j]; }

    // etc.
};

不需要方向指针,只需使用一些智能加减逻辑即可。

关于c++ - 将二维矩阵解析为链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4356759/

相关文章:

c++ - 如何从表中选择特定值

c++ - 为什么我不能在其他成员函数中使用我的构造函数中的变量 "i"? C++

c++ - 如何在 Eigen3 库中有效地提取复数矩阵的实部/虚部?

algorithm - 有没有一种算法可以随机填充这样的矩阵?

matrix - 哪些编码项目用于创造艺术和美感?

matlab - matlab中的矩阵 block 索引加掩码

c++ - 使用 libfm Linux 在 C 中自定义操作或命令?

java - 为什么在迭代器上调用 remove() 会产生 ConcurrentModificationException?

c++ - QtNetwork : Why don't I detect incomming connections ?(永远不会触发 incomingConnection())

java - 理解链表实现的问题