Реализация двунаправленного списка на C#
Формулировка задачи:
Помоги, пожалуйста. Как реализовать процедуры перемещения элементов двунаправленного списка в
очередь и наоборот, чтобы список реализовался с помощью указателей, стек - массивом?
Решение задачи: «Реализация двунаправленного списка на C#»
textual
Листинг программы
class Node<TYPE> { private TYPE Value; private Node<TYPE> Up = null; private Node<TYPE> Down = null; public void AddToUp(TYPE NewValue) { this.Up = new Node<TYPE>(NewValue); this.Up.Down = this; } public void AddToDown(TYPE NewValue) { this.Down = new Node<TYPE>(NewValue); this.Down.Up = this; } public TYPE GetValue() { return this.Value; } public void SetValue(TYPE NewValue) { this.Value = NewValue; } public TYPE[] ToArray() { TYPE[] ResultMass; Node<TYPE> ThisData = this; while (ThisData.Up != null) ThisData = ThisData.Up; Int32 KolOfEllements = new Int32(); while (ThisData.Down != null) { KolOfEllements++; ThisData = ThisData.Down; } ResultMass = new TYPE[KolOfEllements]; KolOfEllements = new Int32(); while (ThisData.Up != null) ThisData = ThisData.Up; while (ThisData.Down != null) { ResultMass[KolOfEllements++] = ThisData.GetValue(); ThisData = ThisData.Down; } return ResultMass; } public Int32 GetLength() { return this.ToArray().Length; } public Node() { this.Up = null; this.Down = null; } public Node(TYPE Value) { this.Value = Value; this.Up = null; this.Down = null; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д