Fixed и структуры: создать дерево - C#

Узнай цену своей работы

Формулировка задачи:

Привет всем! Момогите,у меня следующая проблема: Мне нужно создать дерево на с#.Так как я знаю немного С++ , я решил сделать ето с помощью указателей(Я использую "небезопасный код" ).Именно в етом направлении мне и нужно(таково задание). Я создал структуру branch ,которая хранит указатель на папу,и 2 сыновей , значение ветки.Код:
 unsafe struct branch
    {
        public int value;
        public branch* parent;
        public branch* lSon;
        public branch* rSon;
        
    }
И сам клас деревья , который будет создавать ,добавлять , кароче говоря создавать связи между обектами етих структур.Но прикол в чем: создаетса екземляр структуры нормально,все заполняетса и тд..Но когда конструктор завершает свою роботу,происходят страшные вещи..Сборщик мусора c# куда-то тянет мои екземляры структур в другое место,а указатели ,которые вказывали на них,указывают теперь на мусор...Мне нужно "зафиксировать" ети екземпляры в памяти,что б можна было к ним нормально доступится через указатель.Помогите!Как я уже не пробывал.В итоге ошибки и тд.Выставляю код класа,без fixed .Кто сможет,помогите плс!Ато я уже запарился.(сори за русский,я сам с Украины)
unsafe class three
    {
        public branch* root;
        public branch* current;
        public three(){
            branch tmp = new branch();
 
                tmp.value = 3;
                tmp.lSon=tmp.rSon=null;
                root = &tmp;
                current = &tmp;
                Console.Write(tmp.value + "\n");

            }
            public unsafe void output()
        {
            Console.Write(this.current->value);
        }

    };

Решение задачи: «Fixed и структуры: создать дерево»

textual
Листинг программы
class Foo{
Foo myPointer; // "указатель" на следующий элемент цепочки
 
public Foo Next { get { return myPointer; } } //можем перемещаться по цепочке
};

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы