Fixed и структуры: создать дерево - C#
Формулировка задачи:
Привет всем!
Момогите,у меня следующая проблема:
Мне нужно создать дерево на с#.Так как я знаю немного С++ , я решил сделать ето с помощью указателей(Я использую "небезопасный код" ).Именно в етом направлении мне и нужно(таково задание).
Я создал структуру branch ,которая хранит указатель на папу,и 2 сыновей , значение ветки.Код:
И сам клас деревья , который будет создавать ,добавлять , кароче говоря создавать связи между обектами етих структур.Но прикол в чем: создаетса екземляр структуры нормально,все заполняетса и тд..Но когда конструктор завершает свою роботу,происходят страшные вещи..Сборщик мусора c# куда-то тянет мои екземляры структур в другое место,а указатели ,которые вказывали на них,указывают теперь на мусор...Мне нужно "зафиксировать" ети екземпляры в памяти,что б можна было к ним нормально доступится через указатель.Помогите!Как я уже не пробывал.В итоге ошибки и тд.Выставляю код класа,без fixed .Кто сможет,помогите плс!Ато я уже запарился.(сори за русский,я сам с Украины)
unsafe struct branch { public int value; public branch* parent; public branch* lSon; public branch* rSon; }
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; } } //можем перемещаться по цепочке };
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д