Как можно представить узел B-дерева?

Мы изучаем 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 
...
}
11
задан Tim 26 September 2012 в 03:36
поделиться