//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);
        }
Exemple #3
0
        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];
 }