2010-12-05 50 views
0

這裏是我想在鏈接列表的形式 alt text解析2-d矩陣到鏈表

代表矩陣的想法是,這是一個2-d矩陣。紅色的字體是常規的[i] [j],藍色是我想要存儲在鏈接列表中的額外信息。

在這個矩陣中,我需要存儲幾個信息。

  1. INT行
  2. INT科爾姆
  3. INT標籤
  4. bool值[按以藍色顯示](在屏幕上顯示的值)
  5. ***右
  6. * ** left
  7. *** up
  8. *** down

問題是我會得到4個鏈表,如果我創建4個指針的數組[2-D矩陣]?我怎麼才能得到方向指針???

如果您好奇,我正在努力解決卡諾圖。 link text

任何幫助表示讚賞。謝謝!

+2

...和**爲什麼**你想把它存儲在鏈接列表中?元素的順序應該是什麼?無論如何,每個節點中具有4個指針(右/左/上/下)的結構不是鏈接列表;這是一個圖。) – 2010-12-05 00:57:00

+0

我不明白爲什麼你不能只在索引上工作,而不打擾鏈表。然後,如果每個元素有4個指針不再是一個列表。如果它們是雙向的,它就是一種無向圖。只需使用`structs`的二維數組,就可以輕鬆生活! – Jack 2010-12-05 00:58:54

回答

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

無需方向性指針,只要使用一些聰明的加法和減法的邏輯。