Мы изучаем B-деревья в классе и попросили их реализовать в коде. Учитель оставил нам выбор языка программирования, и я хочу попробовать и сделать это на С#. Моя проблема в том, что следующая структура является незаконной в С#,
unsafe struct BtreeNode
{
int key_num; // The number of keys in a node
int[] key; // Array of keys
bool leaf; // Is it a leaf node or not?
BtreeNode*[] c; // Pointers to next nodes
}
В частности, нельзя создавать указатель, указывающий на саму структуру. Есть ли какой-нибудь подход или альтернативный подход, который я мог бы использовать? Я абсолютно уверен, что ДОЛЖЕН быть способ сделать это в управляемом коде, но я не могу понять это.
EDIT: Эрик ответил мне в правильном направлении. Вот что я использовал,
class BtreeNode
{
public List<BtreeNode> children; // The child nodes
public static int MinDeg; // The Minimum Degree of the tree
public bool IsLeaf { get; set; } // Is the current node a leaf or not?
public List<int> key; // The list of keys
...
}