Мы изучаем B-деревья в классе, и нас попросили реализовать их в коде. Преподаватель оставил нам выбор языка программирования, и я хочу попробовать сделать это на C #. Моя проблема в том, что следующая структура недопустима в C #,
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
}
В частности, нельзя создавать указатель, указывающий на саму структуру. Есть ли какой-нибудь обходной или альтернативный подход, который я мог бы использовать? Я почти уверен, что ДОЛЖЕН быть способ сделать это в рамках управляемого кода, но я не могу этого понять.
РЕДАКТИРОВАТЬ: Ответ Эрика указал мне правильное направление. Вот что я в итоге использовал,
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
...
}