0

在二叉搜索树中,我们的节点结构为

class Node
{
    public:
    int key;
    Node *left;
    Node *right;

};  

所以在创建节点时我们做

Node* createNode(int key)
{
    Node *node=new Node();
    node->key=key;
    node->left=NULL;
    node->right=NULL;

    return node;
}

现在我想要 key ad 2d 矩阵而不是整数键。像这样的东西

class Node
{
    public:
    char matrix[3][3];
    Node *left;
    Node *right;


};

现在如何创建节点?

Node* createNode(char key[3][3])
{
    Node *node=new Node();
    node->matrix=key;     //This line
    return node;
}
4

2 回答 2

2

在 C++ 中同样简单:

vector<vector<double> > matrix;
vector<double> &row = matrix[i];

在 C 中,那将是

double *row = Matrix[i];

请注意,C 方式也适用于 C++,但您应该尽可能选择容器而不是普通指针。

于 2012-05-12T21:55:23.457 回答
0

要获得一排,这很简单,就像@dasblinkenlight 说的那样。然而,要获得一个专栏,它的参与程度要高得多。假设您知道矩阵中的行数,您可以执行以下操作:

int *copyColumn(int **matrix, int column, int rows)
{
    int *data = new int[rows];

    for (int i = 0; i < rows; i++)
         data[i] = matrix[i][column];

    return data;
}

完成后请记住delete数据!

于 2012-05-12T22:16:51.607 回答