Ejemplo n.º 1
0
        public MyLinkedListWithArbitraryPointer <T> CloneListArbitrary()
        {
            MyLinkedListWithArbitraryPointer <T>          cur       = _list;
            MyLinkedListWithArbitraryPointer <T>          cloned    = null;
            MyLinkedListWithArbitraryPointer <T>          clonedCur = null;
            Queue <MyLinkedListWithArbitraryPointer <T> > set       = new Queue <MyLinkedListWithArbitraryPointer <T> >();

            while (cur != null)
            {
                MyLinkedListWithArbitraryPointer <T> tmp = new MyLinkedListWithArbitraryPointer <T>(cur.Data);

                if (cloned == null)
                {
                    cloned    = tmp;
                    clonedCur = cloned;
                }
                else
                {
                    clonedCur.Next = tmp;
                    clonedCur      = clonedCur.Next;
                }

                set.Enqueue(cur.Arbitrary);
                cur = cur.Next;
            }

            clonedCur = cloned;
            while (clonedCur != null)
            {
                clonedCur.Arbitrary = set.Dequeue();
                clonedCur           = clonedCur.Next;
            }

            return(cloned);
        }
Ejemplo n.º 2
0
        public static void PrintList <T>(MyLinkedListWithArbitraryPointer <T> list)
        {
            MyLinkedListWithArbitraryPointer <T> cur = list;

            Console.Write("Linked List values:\n");
            while (cur != null)
            {
                Console.Write(cur.Data + " (" + cur.Arbitrary.Data + "), ");
                cur = cur.Next;
            }
            Console.Write("\n");
        }
Ejemplo n.º 3
0
        public MyLinkedListWithArbitraryPointer <T> CloneListArbitraryWithNoBuffer()
        {
            MyLinkedListWithArbitraryPointer <T> cur = _list;

            return(null);
        }
Ejemplo n.º 4
0
 public void SetList(MyLinkedListWithArbitraryPointer <T> list)
 {
     _list = list;
 }