コード例 #1
0
 internal void AddToList(DoubleLinkList list)
 {
     lock (list) {
         list.InsertTail(this);
         _list = list;
     }
 }
コード例 #2
0
        public void DeleteItemFromAnEmptyList()
        {
            var doubleLinkList = new DoubleLinkList<int>();

            doubleLinkList.Remove(2).ShouldBeFalse();
            doubleLinkList.Count.ShouldEqual(0);
        }
コード例 #3
0
        public void PusitiveUnitTest1OfAddAfterEvenMetod()
        {
            DoubleLinkList actual = new DoubleLinkList();

            actual.AddEnd(1);
            actual.AddEnd(2);
            actual.AddEnd(3);
            actual.AddEnd(4);
            actual.AddEnd(5);
            actual.AddEnd(6);
            actual.AddAfterEven(7);
            DoubleLinkList expected = new DoubleLinkList();

            expected.AddEnd(1);
            expected.AddEnd(2);
            expected.AddEnd(7);
            expected.AddEnd(3);
            expected.AddEnd(4);
            expected.AddEnd(7);
            expected.AddEnd(5);
            expected.AddEnd(6);
            expected.AddEnd(7);
            Assert.AreEqual(expected.Count, actual.Count);
            for (int i = 0; i < expected.Count; i++)
            {
                Assert.AreEqual(expected[i], actual[i]);
            }
        }
コード例 #4
0
        internal RequestTimeoutManager()
        {
            // initialize request lists

            _requestCount = 0;

            _lists = new DoubleLinkList[13];
            for (int i = 0; i < _lists.Length; i++)
            {
                _lists[i] = new DoubleLinkList();
            }
            _currentList = 0;

            // init lock

            _inProgressLock = 0;

            // create the timer

#if DBG
            if (!Debug.IsTagPresent("Timer") || Debug.IsTagEnabled("Timer"))
#endif
            {
                _timer = new Timer(new TimerCallback(this.TimerCompletionCallback), null, _timerPeriod, _timerPeriod);
            }
        }
コード例 #5
0
 public void AddTwoItemInDoubleLinkList()
 {
     var doubleLinkList = new DoubleLinkList<int>();
     doubleLinkList.Add(1);
     doubleLinkList.Add(2);
     CollectionAssert.AreEqual(new[] {2, 1}, doubleLinkList);
 }
コード例 #6
0
 internal RequestTimeoutManager()
 {
     for (int index = 0; index < _lists.Length; index++)
         _lists[index] = new DoubleLinkList();
     _currentList = 0;
     _inProgressLock = 0;
     _timer = new Timer(new TimerCallback(TimerCompletionCallback), null, _timerPeriod, _timerPeriod);
 }
コード例 #7
0
 internal RequestTimeoutManager()
 {
     for (int index = 0; index < _lists.Length; index++)
     {
         _lists[index] = new DoubleLinkList();
     }
     _currentList    = 0;
     _inProgressLock = 0;
     _timer          = new Timer(new TimerCallback(TimerCompletionCallback), null, _timerPeriod, _timerPeriod);
 }
コード例 #8
0
 internal void RemoveFromList()
 {
     if (_list != null)
     {
         lock (_list) {
             Remove();
             _list = null;
         }
     }
 }
コード例 #9
0
 internal void RemoveFromList()
 {
     if (this._list != null)
     {
         lock (this._list)
         {
             base.Remove();
             this._list = null;
         }
     }
 }
コード例 #10
0
 public int Get(int key)
 {
     if (map.ContainsKey(key))
     {
         DoubleLinkList node = map[key];
         removeNode(node);
         AddNodeInFront(node);
         return(node.value);
     }
     return(-1);
 }
コード例 #11
0
        public void DeleteItemFromAListWithThreeItem()
        {
            var doubleLinkList = new DoubleLinkList<int>();

            doubleLinkList.Add(5);
            doubleLinkList.Add(2);
            doubleLinkList.Add(7);
            doubleLinkList.ShouldContain(2);
            doubleLinkList.Remove(2);
            doubleLinkList.ShouldNotContain(2);
        }
コード例 #12
0
        public void DeleteItemFromAListWithOneItem()
        {
            var doubleLinkList = new DoubleLinkList<int>();

            doubleLinkList.Add(5);
            doubleLinkList.ShouldContain(5);
            doubleLinkList.Count.ShouldEqual(1);
            doubleLinkList.Remove(5);
            doubleLinkList.ShouldNotContain(5);
            doubleLinkList.Count.ShouldEqual(0);
        }
コード例 #13
0
        public void AddThreeItemInDoubleLinkList()
        {
            var doubleLinkList = new DoubleLinkList<int>();
            doubleLinkList.Add(1);
            doubleLinkList.Add(2);
            doubleLinkList.Add(3);

            CollectionAssert.AreEqual(new[] {3,2,1},doubleLinkList);
            doubleLinkList.ShouldContain(1);
            doubleLinkList.ShouldContain(2);
            doubleLinkList.ShouldContain(3);
        }
コード例 #14
0
        public void TestAddLast()
        {
            var linkedList = new DoubleLinkList <int>();

            linkedList.AddLast(10);
            Assert.AreEqual(linkedList.Head, linkedList.Tail);
            Assert.IsTrue(linkedList.Count == 1);

            linkedList.AddLast(11);
            Assert.IsTrue(linkedList.Head.Value == 10);
            Assert.IsTrue(linkedList.Tail.Value == 11);
            Assert.IsTrue(linkedList.Count == 2);
            Assert.IsTrue(linkedList.Tail.Previous.Value == 10);
        }
コード例 #15
0
        public void TestRemoveFirst()
        {
            var linkedList = new DoubleLinkList <int>();

            linkedList.AddFirst(11);
            linkedList.AddLast(12);
            linkedList.AddFirst(10);

            Assert.IsTrue(linkedList.Head.Value == 10);
            Assert.IsTrue(linkedList.Tail.Value == 12);

            linkedList.RemoveLast();
            Assert.IsTrue(linkedList.Tail.Value == 11);
            Assert.IsTrue(linkedList.Tail.Previous.Value == 10);
        }
コード例 #16
0
 void AddNodeInFront(DoubleLinkList node)
 {
     lock (node)
     {
         node.next = head;
         node.prev = null;
         if (head != null)
         {
             head.prev = node;
         }
         head = node;
         if (tail == null)
         {
             tail = node;
         }
     }
 }
コード例 #17
0
        public void Test()
        {
            DoubleLinkList <int> list = new DoubleLinkList <int>();

            Assert.Equal(0, list.Length);
            Assert.Null(list.Head);

            // 1 <- 2 <- 3 <- 4
            list.Add(1);
            list.Add(2);
            list.Add(3);
            list.Add(4);
            Assert.Equal(4, list.Length);
            Assert.Equal(2, list[1]);

            // 1 <- 2  <- 3 <- 4
            // 1 <- 20 <- 3 <- 4
            list[1] = 20;
            Assert.Equal(4, list.Length);
            Assert.Equal(20, list[1]);

            // 1 <- 20      <- 3 <- 4
            // 1 <- 20 <- 5 <- 3 <- 4
            list.Insert(2, 5);
            Assert.Equal(5, list.Length);
            Assert.Equal(5, list[2]);
            Assert.Equal(3, list[3]);

            // 1 <- 20 <- 5 <- 3 <- 4
            //      20 <- 5 <- 3 <- 4
            list.RemoveAt(0);
            Assert.Equal(4, list.Length);
            Assert.Equal(20, list[0]);

            // 20 <- 5 <- 3 <- 4
            // 20 <- 5      <- 4
            list.RemoveAt(2);
            Assert.Equal(3, list.Length);
            Assert.Equal(4, list[2]);

            list.Clear();
            Assert.Equal(0, list.Length);
            Assert.Null(list.Head);
        }
コード例 #18
0
 void removeNode(DoubleLinkList node)
 {
     if (node.prev != null)
     {
         node.prev.next = node.next;
     }
     else
     {
         head = node.next;
     }
     if (node.next != null)
     {
         node.next.prev = node.prev;
     }
     else
     {
         tail = node.prev;
     }
 }
コード例 #19
0
        public void TestRemove()
        {
            var linkedList = new DoubleLinkList <int>();

            linkedList.AddFirst(11);
            linkedList.AddLast(12);
            linkedList.AddFirst(10);

            linkedList.Remove(11);
            Assert.IsTrue(linkedList.Count == 2);
            Assert.IsTrue(linkedList.Tail.Previous.Value == 10);

            linkedList.Remove(15);
            Assert.IsTrue(linkedList.Count == 2);

            linkedList.Remove(12);
            Assert.AreEqual(linkedList.Head, linkedList.Tail);
            Assert.IsTrue(linkedList.Tail.Previous == null);
            linkedList.Remove(10);
            Assert.IsTrue(linkedList.Count == 0);
        }
コード例 #20
0
 public void Put(int key, int value)
 {
     if (map.ContainsKey(key))
     {
         DoubleLinkList node = map[key];
         node.value = value;
         removeNode(node);
         AddNodeInFront(node);
     }
     else
     {
         if (map.Count == size)
         {
             //map.Remove(tail.key);
             removeNode(tail);
         }
         DoubleLinkList node = new DoubleLinkList(key, value);
         //map.AddOrUpdate(key, node);
         AddNodeInFront(node);
     }
 }
コード例 #21
0
        private void doublelinklist_Click(object sender, EventArgs e)
        {
            DoubleLinkList list = new DoubleLinkList();

            list.InsertNodeAtBegining(1);
            list.InsertNodeAfter(3, 1);
            list.InsertNodeBefore(2, 3);
            list.InsertNodeAtEnd(4);
            list.InsertNodeAtEnd(5);
            list.InsertNodeAfter(6, 5);
            list.DeleteNode(3);

            list.Traverse();
            list.TraverseBackward();

            //Make list circular
            DoubleLinkListNode second = list.Find(2);
            DoubleLinkListNode node   = list.Find(6);

            node.next = second;

            list.IsListCircular();
        }
コード例 #22
0
        public void DoubleLinkTest()
        {
            var list = new DoubleLinkList();

            Assert.IsNull(list.Find("Fred"));
            list.Add("Fred");
            Assert.AreEqual("Fred", list.Find("Fred").Value);
            Assert.IsNull(list.Find("Wilma"));
            Assert.AreEqual("Fred", list.Find("Fred").Value);
            list.Add("Wilma");
            Assert.AreEqual("Wilma", list.Find("Wilma").Value);
            var ans = new string[] { "Fred", "Wilma" };

            CollectionAssert.AreEqual(ans, list.Values());

            list = new DoubleLinkList();
            list.Add("Fred");
            list.Add("Wilma");
            list.Add("Betty");
            list.Add("Barney");
            ans = new string[] { "Fred", "Wilma", "Betty", "Barney" };
            CollectionAssert.AreEqual(ans, list.Values());
            list.Delete(list.Find("Wilma").Value);
            ans = new string[] { "Fred", "Betty", "Barney" };

            CollectionAssert.AreEqual(ans, list.Values());
            list.Delete(list.Find("Barney").Value);
            ans = new string[] { "Fred", "Betty" };
            CollectionAssert.AreEqual(ans, list.Values());
            list.Delete(list.Find("Fred").Value);
            ans = new string[] { "Betty" };
            CollectionAssert.AreEqual(ans, list.Values());
            list.Delete(list.Find("Betty").Value);
            ans = new string[] { };
            CollectionAssert.AreEqual(ans, list.Values());
        }
コード例 #23
0
        public void InsertItemInEmptyDoubleLinkListBeforeTheReferanceElement()
        {
            var doubleLinkList = new DoubleLinkList<int?>();

            doubleLinkList.InsertBefore(null,5);

            CollectionAssert.AreEqual(new[] { 5 }, doubleLinkList);
            doubleLinkList.ShouldContain(5);
        }
コード例 #24
0
        public void ShouldHaveAReverseEnumerableForAListWithTwoItem()
        {
            var doubleLinkList = new DoubleLinkList<int>();

            doubleLinkList.Add(5);
            doubleLinkList.Add(7);

            var enumerable = doubleLinkList.GetReverseEnumerable();

            enumerable.ShouldContain(7);
        }
コード例 #25
0
        public void VerifyIfAListContainAnItem()
        {
            var doubleLinkList = new DoubleLinkList<int>();

            doubleLinkList.Add(5);
            doubleLinkList.Add(2);
            doubleLinkList.Add(7);
            doubleLinkList.Contains(2).ShouldBeTrue();
            doubleLinkList.Contains(7).ShouldBeTrue();
            doubleLinkList.Contains(8).ShouldBeFalse();
        }
コード例 #26
0
        public void VerifyCopyToInList()
        {
            var doubleLinkList = new DoubleLinkList<int>();
            doubleLinkList.Add(2);
            doubleLinkList.Add(3);
            doubleLinkList.Add(4);

            var array = new[] { 1, 2, 3, 0, 0, 0 };
            var expectedResult = new[] { 1, 2, 3, 4, 3, 2 };

            doubleLinkList.CopyTo(array, 3);
            CollectionAssert.AreEqual(expectedResult, array);
        }
コード例 #27
0
        static void Main(string[] args)
        {
            SingleLinkList list       = new SingleLinkList();
            DoubleLinkList doubleList = new DoubleLinkList();
            int            item;
            bool           singlelinklist = true;
            bool           doublelinklist = false;

            while (singlelinklist)
            {
                Console.WriteLine();
                Console.WriteLine("----Please Select Options-------");
                Console.WriteLine("1.  Dislpay List");
                Console.WriteLine("2.  Count number of node in list");
                Console.WriteLine("3.  Search for an element");
                Console.WriteLine("4.  Insert into emplty list / Beginning of list");
                Console.WriteLine("5. Insert node at end of list");
                Console.WriteLine("6. Insert node after specified node");
                Console.WriteLine("7. Insert node before specified node");
                Console.WriteLine("8. Insert node at given k-th position");
                Console.WriteLine("9. Delete first node");
                Console.WriteLine("10. Delete any specific node");
                Console.WriteLine("11.Delete last node ");
                Console.WriteLine("12. Reverse of the list");
                Console.WriteLine("13. Bubble sort by exchanging the data");
                Console.WriteLine("14. Bubble sort by exchanging the link");
                Console.WriteLine("15. Merge sort");
                Console.WriteLine("16. Insert cycle");
                Console.WriteLine("17. Delete cycle");
                Console.WriteLine("18. Remove cycle");
                Console.WriteLine("19. Create list");
                Console.WriteLine("20. Reverse List Recursive");
                Console.WriteLine("21. Quit");
                Console.WriteLine("Please Enter Your Choice :");
                choice = Convert.ToInt32(Console.ReadLine());
                if (choice == 21)
                {
                    Console.WriteLine("Program End........");
                    break;
                }
                switch (choice)
                {
                case 1:
                    list.DisplayList();
                    break;

                case 2:
                    list.DisplayListCount();
                    break;

                case 3:
                    Console.WriteLine("Please enter item you want to search into list");
                    item = Convert.ToInt32(Console.ReadLine());
                    list.SearchItemIntoList(item);
                    break;

                case 4:
                    Console.WriteLine("Please enter item you want to insert beginning of list");
                    item = Convert.ToInt32(Console.ReadLine());
                    list.InsertAtBeginning(item);
                    break;

                case 5:
                    Console.WriteLine("Please enter item you want to insert end of the list");
                    item = Convert.ToInt32(Console.ReadLine());
                    list.InsertAtEnd(item);
                    break;

                case 6:
                    list.DisplayList();
                    int itemAfterNode;
                    Console.WriteLine("Please enter item you want to insert after item");
                    itemAfterNode = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Please enter item you want to insert into list");
                    item = Convert.ToInt32(Console.ReadLine());
                    list.InsertAfterNode(itemAfterNode, item);
                    break;

                case 7:
                    list.DisplayList();
                    int itemBeforeNode;
                    Console.WriteLine("Please enter item you want to insert before item");
                    itemBeforeNode = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Please enter item you want to insert into list");
                    item = Convert.ToInt32(Console.ReadLine());
                    list.InsertBeforeNode(itemBeforeNode, item);
                    break;

                case 8:
                    int position;
                    Console.WriteLine("Please enter position you want to insert item.");
                    position = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Please enter item you want to insert into list");
                    item = Convert.ToInt32(Console.ReadLine());
                    list.InsertAtPosition(position, item);
                    break;

                case 9:
                    list.DeleteFirstNode();
                    break;

                case 10:
                    list.DeleteLastNode();
                    break;

                case 11:
                    int deleteatposition;
                    Console.WriteLine("Please enter position you want to delete from list. Please enter 0 if you want to make list as empty.");
                    deleteatposition = Convert.ToInt32(Console.ReadLine());
                    list.DeleteOnlyNode(deleteatposition);
                    break;

                case 12:
                    list.ReverseList();
                    break;

                case 13:
                    list.BubbleSortListData();
                    break;

                case 14:
                    list.BubbleSortListAddressOrLinkExcahnge();
                    break;

                case 15:
                    list.MergeSort();
                    break;

                case 16:
                    list.CreateList();
                    list.CheckCyle(1);
                    break;

                case 17:
                    list.CreateList();
                    list.CheckCyle(2);
                    break;

                case 18:
                    list.CreateList();
                    list.CheckCyle(3);
                    break;

                case 19:
                    list.CreateList();
                    break;

                case 20:
                    Node root = new Node(5);
                    root.link      = new Node(7);
                    root.link.link = new Node(9);
                    Node res = list.reverseListRecursive(root);
                    break;

                default:
                    Console.WriteLine("Invalid Choice");
                    break;
                }
            }
            while (doublelinklist)
            {
                Console.WriteLine("----Please Select Options-------");
                Console.WriteLine("Please Enter Your Choice :");
                Console.WriteLine("1. DisplayList");
                Console.WriteLine("2. CreateItemAtEnd");
                Console.WriteLine("3. CreateItemAtBeginnning");
                Console.WriteLine("4. CreateItemAtPosition");
                Console.WriteLine("5. CreateItemAftertPosition");
                Console.WriteLine("6. DeleteFirstItem");
                Console.WriteLine("7. DeleteItemOnPosition");
                Console.WriteLine("8. UpdateItemOnPosition");
                Console.WriteLine("9. DeleteItemOnPosition");
                Console.WriteLine("10. CreateList");

                choice = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Your Choice : " + choice);
                if (choice == 11)
                {
                    Console.WriteLine("Program End........");
                    break;
                }
                switch (choice)
                {
                case 1:
                    doubleList.DisplayList();
                    break;

                case 2:
                    Console.WriteLine("Please Enter Item");
                    item = Convert.ToInt32(Console.ReadLine());
                    doubleList.CreateItemAtEnd(item);
                    break;

                case 3:
                    Console.WriteLine("Please Enter Item");
                    item = Convert.ToInt32(Console.ReadLine());
                    doubleList.CreateItemAtBeginnning(item);
                    break;

                case 4:
                    doubleList.CreateItemAtPosition();
                    break;

                case 5:
                    doubleList.CreateItemAftertPosition();
                    break;

                //case 6:
                //    doubleList.DeleteFirstItem();
                //    break;
                //case 7:
                //    doubleList.DeleteItemOnPosition();
                //    break;
                //case 8:
                //    doubleList.UpdateItemOnPosition();
                //    break;
                //case 9:
                //    doubleList.DeleteItemOnPosition();
                //    break;
                case 10:
                    doubleList.CreateList();
                    break;

                default:
                    Console.WriteLine("Invalid Choice");
                    break;
                }
            }
            Console.ReadLine();
        }
コード例 #28
0
 public void AddItemInEmptyDoubleLinkList()
 {
     var doubleLinkList=new DoubleLinkList<int>();
     doubleLinkList.Add(1);
     doubleLinkList.ShouldContain(1);
 }
コード例 #29
0
        public void InsertItemInAListWithThreeItemBeforeTheReferanceElement()
        {
            var doubleLinkList = new DoubleLinkList<int>();

            doubleLinkList.Add(5);
            doubleLinkList.Add(2);
            doubleLinkList.Add(3);
            doubleLinkList.InsertBefore(5, 7);

            CollectionAssert.AreEqual(new[] { 3, 2,7,5 }, doubleLinkList);
            doubleLinkList.ShouldContain(5);
            doubleLinkList.Count.ShouldEqual(4);
        }
コード例 #30
0
 public LRUCache(int capacity)
 {
     size = capacity;
     head = tail = new DoubleLinkList();
     map  = new ConcurrentDictionary <int, DoubleLinkList>();
 }
コード例 #31
0
        public void VerifyArgumentOutOfRangeExceptionForCopyToArray()
        {
            var doubleLinkList = new DoubleLinkList<int>();
            doubleLinkList.Add(2);
            doubleLinkList.Add(3);
            var array = new[] { 1, 2, 0 };

            doubleLinkList.CopyTo(array, -1);
        }
コード例 #32
0
 internal void RemoveFromList()
 {
     if (_list != null)
     {
         lock (_list)
         {
             base.Remove();
             _list = null;
         }
     }
 }
コード例 #33
0
        public void InsertItemInDoubleLinkListBeforeTheReferanceElement()
        {
            var doubleLinkList = new DoubleLinkList<int>();

            doubleLinkList.Add(5);
            doubleLinkList.InsertBefore(5, 3);

            CollectionAssert.AreEqual(new[] { 3, 5 }, doubleLinkList);
            doubleLinkList.ShouldContain(5);
        }
コード例 #34
0
 public void EmptyDoubleLinkList()
 {
     var doubleLinkList=new DoubleLinkList<int>();
     doubleLinkList.ShouldBeEmpty();
 }
コード例 #35
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World");
            Console.ReadLine();
            SingleLinkList   list       = new SingleLinkList();
            DoubleLinkList   doubleList = new DoubleLinkList();
            BinarySearchTree bst        = new BinarySearchTree();
            int  item;
            bool singlelinklist = false;
            bool doublelinklist = false;
            bool searchingAlgo  = false;
            bool sortingAlgo    = false;
            bool recursiveAlgo  = false;
            bool bstAlgo        = false;

            while (singlelinklist)
            {
                Console.WriteLine();
                Console.WriteLine("----Please Select Options-------");
                Console.WriteLine("1. Dislpay List");
                Console.WriteLine("2. Count number of NodeLink in list");
                Console.WriteLine("3. SearchingAlgorithum for an element");
                Console.WriteLine("4. Insert into emplty list / Beginning of list");
                Console.WriteLine("5. Insert NodeLink at end of list");
                Console.WriteLine("6. Insert NodeLink after specified NodeLink");
                Console.WriteLine("7. Insert NodeLink before specified NodeLink");
                Console.WriteLine("8. Insert NodeLink at given k-th position");
                Console.WriteLine("9. Delete first NodeLink");
                Console.WriteLine("10. Delete any specific NodeLink");
                Console.WriteLine("11.Delete last NodeLink ");
                Console.WriteLine("12. Reverse of the list");
                Console.WriteLine("13. Bubble sort by exchanging the data");
                Console.WriteLine("14. Bubble sort by exchanging the link");
                Console.WriteLine("15. Merge sort");
                Console.WriteLine("16. Insert cycle");
                Console.WriteLine("17. Delete cycle");
                Console.WriteLine("18. Remove cycle");
                Console.WriteLine("19. Create list");
                Console.WriteLine("20. Reverse List Recursive");
                Console.WriteLine("21. Quit");
                Console.WriteLine("Please Enter Your Choice :");
                choice = Convert.ToInt32(Console.ReadLine());
                if (choice == 21)
                {
                    Console.WriteLine("Program End........");
                    break;
                }
                switch (choice)
                {
                case 1:
                    list.DisplayList();
                    break;

                case 2:
                    list.DisplayListCount();
                    break;

                case 3:
                    Console.WriteLine("Please enter item you want to SearchingAlgorithum into list");
                    item = Convert.ToInt32(Console.ReadLine());
                    list.SearchItemIntoList(item);
                    break;

                case 4:
                    Console.WriteLine("Please enter item you want to insert beginning of list");
                    item = Convert.ToInt32(Console.ReadLine());
                    list.InsertAtBeginning(item);
                    break;

                case 5:
                    Console.WriteLine("Please enter item you want to insert end of the list");
                    item = Convert.ToInt32(Console.ReadLine());
                    list.InsertAtEnd(item);
                    break;

                case 6:
                    list.DisplayList();
                    int itemAfterNode;
                    Console.WriteLine("Please enter item you want to insert after item");
                    itemAfterNode = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Please enter item you want to insert into list");
                    item = Convert.ToInt32(Console.ReadLine());
                    list.InsertAfterNode(itemAfterNode, item);
                    break;

                case 7:
                    list.DisplayList();
                    int itemBeforeNode;
                    Console.WriteLine("Please enter item you want to insert before item");
                    itemBeforeNode = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Please enter item you want to insert into list");
                    item = Convert.ToInt32(Console.ReadLine());
                    list.InsertBeforeNode(itemBeforeNode, item);
                    break;

                case 8:
                    int position;
                    Console.WriteLine("Please enter position you want to insert item.");
                    position = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Please enter item you want to insert into list");
                    item = Convert.ToInt32(Console.ReadLine());
                    list.InsertAtPosition(position, item);
                    break;

                case 9:
                    list.DeleteFirstNode();
                    break;

                case 10:
                    list.DeleteLastNode();
                    break;

                case 11:
                    int deleteatposition;
                    Console.WriteLine("Please enter position you want to delete from list. Please enter 0 if you want to make list as empty.");
                    deleteatposition = Convert.ToInt32(Console.ReadLine());
                    list.DeleteOnlyNode(deleteatposition);
                    break;

                case 12:
                    list.ReverseList();
                    break;

                case 13:
                    list.BubbleSortListData();
                    break;

                case 14:
                    list.BubbleSortListAddressOrLinkExcahnge();
                    break;

                case 15:
                    list.MergeSort();
                    break;

                case 16:
                    list.CreateList();
                    list.CheckCyle(1);
                    break;

                case 17:
                    list.CreateList();
                    list.CheckCyle(2);
                    break;

                case 18:
                    list.CreateList();
                    list.CheckCyle(3);
                    break;

                case 19:
                    list.CreateList();
                    break;

                case 20:
                    NodeLink root = new NodeLink(5);
                    root.link      = new NodeLink(7);
                    root.link.link = new NodeLink(9);
                    NodeLink res = list.reverseListRecursive(root);
                    break;

                default:
                    Console.WriteLine("Invalid Choice");
                    break;
                }
            }
            while (doublelinklist)
            {
                Console.WriteLine("----Please Select Options-------");
                Console.WriteLine("Please Enter Your Choice :");
                Console.WriteLine("1. DisplayList");
                Console.WriteLine("2. CreateItemAtEnd");
                Console.WriteLine("3. CreateItemAtBeginnning");
                Console.WriteLine("4. CreateItemAtPosition");
                Console.WriteLine("5. CreateItemAftertPosition");
                Console.WriteLine("6. DeleteFirstItem");
                Console.WriteLine("7. DeleteItemOnPosition");
                Console.WriteLine("8. UpdateItemOnPosition");
                Console.WriteLine("9. DeleteItemOnPosition");
                Console.WriteLine("10. CreateList");

                choice = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Your Choice : " + choice);
                if (choice == 11)
                {
                    Console.WriteLine("Program End........");
                    break;
                }
                switch (choice)
                {
                case 1:
                    doubleList.DisplayList();
                    break;

                case 2:
                    Console.WriteLine("Please Enter Item");
                    item = Convert.ToInt32(Console.ReadLine());
                    doubleList.CreateItemAtEnd(item);
                    break;

                case 3:
                    Console.WriteLine("Please Enter Item");
                    item = Convert.ToInt32(Console.ReadLine());
                    doubleList.CreateItemAtBeginnning(item);
                    break;

                case 4:
                    doubleList.CreateItemAtPosition();
                    break;

                case 5:
                    doubleList.CreateItemAftertPosition();
                    break;

                //case 6:
                // doubleList.DeleteFirstItem();
                // break;
                //case 7:
                // doubleList.DeleteItemOnPosition();
                // break;
                //case 8:
                // doubleList.UpdateItemOnPosition();
                // break;
                //case 9:
                // doubleList.DeleteItemOnPosition();
                // break;
                case 10:
                    doubleList.CreateList();
                    break;

                default:
                    Console.WriteLine("Invalid Choice");
                    break;
                }
            }
            while (searchingAlgo)
            {
                Console.WriteLine("----Please Select Options-------");
                Console.WriteLine("0. Quit");
                Console.WriteLine("1. Liner SearchingAlgorithum");
                Console.WriteLine("2. Binary SearchingAlgorithum");
                int choice = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Your Choice : " + choice);
                SearchingAlgorithum SearchingAlgorithum = new SearchingAlgorithum();
                if (choice == 0)
                {
                    Console.WriteLine("Program End........");
                    return;
                }
                switch (choice)
                {
                case 1:
                    SearchingAlgorithum.LinearSearch();
                    break;

                case 2:
                    SearchingAlgorithum.BinarySearch();
                    break;

                default:
                    Console.WriteLine("Invalid Choice");
                    break;
                }
            }
            while (sortingAlgo)
            {
                Console.WriteLine("***********************");
                Console.WriteLine("0. Quit");
                Console.WriteLine("1. Create Dummy Data ");
                Console.WriteLine("2. Create Data Using Your Choice");
                Console.WriteLine("3. Selection Sort");
                Console.WriteLine("4. Bubble Cort");
                Console.WriteLine("5. Insertion Sort");
                Console.WriteLine("6. Recursive Merge Sort");
                Console.WriteLine("7. Iterative Merge Sort ");
                Console.WriteLine("8. Quick Sort ");
                Console.WriteLine("9. Binary Tree Sort ");
                Console.WriteLine("10. Heap Sort ");
                Console.WriteLine("11. Redix Sort ");
                Console.WriteLine("12. Address Calculation Sort ");
                int choice = Convert.ToInt32(Console.ReadLine());
                if (choice == 0)
                {
                    Console.WriteLine("Program End..");
                    return;
                }

                switch (choice)
                {
                case 3:
                    SortingAlgorithm sort = new SortingAlgorithm();
                    sort.SelectionSort();
                    break;

                case 6:
                    SortingAlgorithm recursiveMergesort = new SortingAlgorithm();
                    recursiveMergesort.MergeSort();
                    break;

                default:
                    Console.WriteLine("Invalid Choice");
                    break;
                }
                Console.WriteLine();
            }
            while (recursiveAlgo)
            {
                Console.WriteLine("***********************");
                Console.WriteLine("0. Quit");
                Console.WriteLine("1. Create Dummy Data ");
                Console.WriteLine("2. Create Data Using Your Choice");
                Console.WriteLine("3. Selection Sort");
                Console.WriteLine("4. Bubble Cort");
                Console.WriteLine("5. Insertion Sort");
                Console.WriteLine("6. Recursive Merge Sort");
                Console.WriteLine("7. Iterative Merge Sort ");
                Console.WriteLine("8. Quick Sort ");
                Console.WriteLine("9. Binary Tree Sort ");
                Console.WriteLine("10. Heap Sort ");
                Console.WriteLine("11. Redix Sort ");
                Console.WriteLine("12. Address Calculation Sort ");
                int choice = Convert.ToInt32(Console.ReadLine());
                if (choice == 0)
                {
                    Console.WriteLine("Program End..");
                    return;
                }

                switch (choice)
                {
                case 3:
                    SortingAlgorithm sort = new SortingAlgorithm();
                    sort.SelectionSort();
                    break;

                case 6:
                    SortingAlgorithm recursiveMergesort = new SortingAlgorithm();
                    recursiveMergesort.MergeSort();
                    break;

                default:
                    Console.WriteLine("Invalid Choice");
                    break;
                }
                Console.WriteLine();
            }
            while (bstAlgo)
            {
                Console.WriteLine("************************");
                Console.WriteLine("Please Enter your choice :");
                Console.WriteLine("1. Create default Binary tree");
                Console.WriteLine("2. Create int Binary tree");
                Console.WriteLine("3. Display BST");
                Console.WriteLine("4. Min Node Value");
                Console.WriteLine("5. Max Node Value");
                Console.WriteLine("6. Height Of Tree ");
                Console.WriteLine("7. Insert Into BST ");
                Console.WriteLine("8. Insert Into BST Iterator ");
                Console.WriteLine("9. Delete Item From BST ");
                Console.WriteLine("0. Quit");
                int Choice = Convert.ToInt32(Console.ReadLine());
                if (Choice == 0)
                {
                    Console.WriteLine("Program end ...");
                    return;
                }

                switch (Choice)
                {
                case 1:
                    bst.CreateTree();
                    break;

                case 2:
                    bst.createIntTree();
                    break;

                case 3:
                    bst.DisplayTree();
                    break;

                case 4:
                    bst.DisplayMin();
                    break;

                case 5:
                    bst.DisplayMax();
                    break;

                case 6:
                    int heightOfTree = bst.DisplayHeight();
                    Console.WriteLine("Height Of Tree : " + heightOfTree);
                    break;

                case 7:
                    Console.WriteLine("Please Enter Number you would like to insert into tree");
                    int item7 = Convert.ToInt32(Console.ReadLine());
                    bst.InsertItem(item7);
                    break;

                case 8:
                    Console.WriteLine("Please Enter Number you would like to insert into tree");
                    int item0 = Convert.ToInt32(Console.ReadLine());
                    bst.InsertItemI(item0);
                    break;

                case 9:
                    Console.WriteLine("Please Enter Number you would like to delete into tree");
                    int itemDelete = Convert.ToInt32(Console.ReadLine());
                    bst.DeleteItem(itemDelete);
                    break;

                default:
                    Console.WriteLine("Invalid Choice");
                    break;
                }
            }
            Console.ReadLine();
        }
コード例 #36
0
 internal DoubleLinkListEnumerator(DoubleLinkList list)
 {
     _list = list;
     _current = list;
 }
コード例 #37
0
        public void VerifyArgumentNullExceptionForCopyToArray()
        {
            var doubleLinkList = new DoubleLinkList<int>();
            doubleLinkList.Add(2);
            doubleLinkList.Add(3);
            int[] array = null;

            doubleLinkList.CopyTo(array, 2);
        }
コード例 #38
0
        public void VerifyIndexOutOfRangeForCopyToArray()
        {
            var doubleLinkList = new DoubleLinkList<int>();
            doubleLinkList.Add(2);
            doubleLinkList.Add(3);
            var array = new[] { 1, 2, 0 };

            doubleLinkList.CopyTo(array, 2);
        }
コード例 #39
0
 internal void AddToList(DoubleLinkList list)
 {
     lock (list)
     {
         list.InsertTail(this);
         _list = list;
     }
 }
コード例 #40
0
 public BrowserHistory(string homepage)
 {
     history = new DoubleLinkList <string>();
     current = new DoubleLinkNode <string>(homepage);
     history.AddLast(current);
 }