//output: {[count][isCyclic]}{[rnd][data]}{[rnd][data]}... public string Serialize(ListRand obj) { Initialize(obj); bool isCyclic = CheckListForCyclicity(); FromListToArray(); return(FromArrayToString(isCyclic)); }
ListRand BuildListRand(int count, bool isCyclic, ListNode[] list) { var result = new ListRand(); result.Count = count; result.Head = list[0]; result.Tail = list[count - 1]; if (isCyclic) { result.Head.Prev = result.Tail; result.Tail.Next = result.Head; } return(result); }
static void Main(string[] args) { string pathNew = @"test.txt"; var a = new Generator().Generate(); using (FileStream fsNew = new FileStream(pathNew, FileMode.Create, FileAccess.Write)) { a.Serialize(fsNew); } var b = new ListRand(); using (FileStream fsSource = new FileStream(pathNew, FileMode.Open, FileAccess.Read)) { b.Deserialize(fsSource); } }
void Initialize(ListRand obj) { _obj = obj; dictionary = new Dictionary <ListNode, int>(); nodes = new ListNode[obj.Count]; }