我有一个3x3维度的小矩阵
ABC
DEF
GHI
我们称之为矩阵[l] [c],其中l代表行,c代表列。 我定义了这个结构:
typedef struct cell{
int *neighbours[4];
int flag;
char value;
}NODE
我想根据矩阵做一个链表。邻居必须拥有该单元格的邻居(向上,向下,向右,向左)的地址,标记它首先被定义为0,而值只是单元格所具有的字母。
如何构建此链表以存储矩阵中所有单元格的信息?我必须告诉我对链表的经验很少。从未与他们合作
谢谢
答案 0 :(得分:1)
struct cell{
struct cell *nesw[4];
int flag;
char value;
} cells[9] =
{ { { NULL , cells+1, cells+3, NULL }, 0, 'a' }
, { { NULL , cells+2, cells+4, cells }, 1, 'b' }
, { { NULL , NULL , cells+5, cells+1}, 2, 'c' }
, { { cells , cells+4, cells+6, NULL }, 3, 'd' }
, { { cells+1, cells+5, cells+7, cells+3}, 4, 'e' }
, { { cells+2, NULL , cells+8, cells+4}, 5, 'f' }
, { { cells+3, cells+7, NULL , NULL }, 6, 'g' }
, { { cells+4, cells+8, NULL , cells+6}, 7, 'h' }
, { { cells+5, NULL , NULL , cells+7}, 8, 'i' }
};
答案 1 :(得分:0)
您可以将每个单元格存储为链接列表的节点。
struct LinkedListNode;
typedef struct cell{
struct LinkedListNode* neighbours[4];
int flag;
char value;
}NODE;
struct LinkedListNode {
NODE data;
struct LinkedListNode* next;
};
每个节点将包含一个单元格。 neighbours[i]
将指向相应的相邻单元格。所以基本上,如果你形成一个单元格的链接列表,整个结构将看起来像一个邻接列表。