将2-D矩阵解析为链接列表

时间:2010-12-05 00:51:42

标签: c++ matrix linked-list

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

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

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

  1. int row
  2. int colm
  3. int label [如蓝色所示]
  4. bool值(屏幕上显示的值)
  5. ***对
  6. ***离开
  7. *** up
  8. *** down
  9. 问题是我要获得4个链接列表,如果我创建4个数组指针[用于2-D矩阵]?我怎么得到方向指针???

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

    感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:3)

请勿使用链接列表,请使用二维数组。快速&脏(和不完整):

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.
};

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