我有这个矩阵:
A B C
D E F
G H I
我想获得长度为3的相邻单元格和对角单元格的所有可能组合,例如:
从A开始:
- *ABC* right right
- *ABE* right down
- *ABF* right diagonal-right
- *ABD* right diagonal-left
- ecc ecc
我试图创建一个名为“letera”的新类,将字母作为键,并使用一个成员来指示指向右、左、下、上 ecc 的指针。还有一个叫做“sequenza”的成员,一个连接它接触到的每个字母的字符串。
例如,如果 a 有作为键,“B”,我有 B->down == *E,B->left == *A,B->right == *C 等等......而且它有效。然后我为每个字母设置一个计数器:当它到达 3 时,它应该停止确定组合。
然后是问题的核心:每个字母要遵循的路径......我尝试创建一个递归函数,但它确实有效。
你能帮我看这个或建议我另一种方式吗?
非常感谢。
编码:
void decisione(lettera *c) {
if (c == nullptr) return ;
c->count++;
c->sequenza = c->sequenza + c->key;
if (c->count == 2)
cout << "\n" << c->sequenza;
//the sequence of letters accumulated in every call
decisione(c->Up);
decisione(c->Down);
}
它给了我例如 AAA 和 BBB,然后它崩溃了 =(