разобрать 2-D матрицу в список ссылок - PullRequest
1 голос
/ 05 декабря 2010

Вот матрица, которую я хочу представить в форме списка ссылок alt text

Идея в том, что это 2-D матрица. Красный шрифт - это обычный [i] [j], а синий - дополнительная информация, которую я хочу сохранить в списке ссылок.

В этой матрице мне нужно хранить несколько данных.

  1. int row
  2. int colm
  3. int label [как показано синим цветом]
  4. значение bool (значение, отображаемое на экране)
  5. *** право
  6. *** осталось
  7. *** вверх
  8. *** вниз

проблема в том, что я собираюсь получить 4 списка ссылок, если я создам 4 указателя массива [для двумерной матрицы]? как мне получить указатели направления ???

Если вам интересно, я работаю над решением карты Карно. текст ссылки

Любая помощь приветствуется. Спасибо!

1 Ответ

3 голосов
/ 05 декабря 2010

Не используйте связанный список, используйте двумерный массив.Быстрый и грязный (и неполный):

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

Нет необходимости в указателях направления, просто используйте некоторую умную логику сложения и вычитания.

...