public void Concat(LinkListGen <T> list2)
        {
            LinkGen <T>     temp    = list;
            LinkGen <T>     temp2   = list2.list;
            LinkListGen <T> newList = new LinkListGen <T>();

            while (temp.Next != null)
            {
                newList.AppendItem(temp.Data);
                temp = temp.Next; //move one link
                if (temp.Next == null)
                {
                    newList.AppendItem(temp.Data);
                }
            }
            while (temp2.Next != null)
            {
                newList.AppendItem(temp2.Data);
                temp2 = temp2.Next; //move one link
                if (temp2.Next == null)
                {
                    newList.AppendItem(temp2.Data);
                }
            }
            list = newList.list;
        }
        public void Sort()
        {
            LinkGen <T>     temp    = list;
            LinkListGen <T> newList = new LinkListGen <T>();

            newList.AppendItem(temp.Data);
            LinkGen <T> temp2 = newList.list;

            temp = temp.Next;
            while (temp != null)
            {
                if (temp.Data.CompareTo(temp2.Data) == 1) //if temp > temp2
                {
                    newList.AppendItem(temp.Data);
                    temp2 = newList.list;
                }
                if (temp.Data.CompareTo(temp2.Data) < 1) //if temp <= temp2
                {
                    newList.AddItem(temp.Data);
                    temp2 = newList.list;
                }

                temp = temp.Next;
            }
            list = newList.list;
        }
        public void InsertInOrder(T item)
        {
            LinkGen <T>     temp    = list;
            LinkListGen <T> newList = new LinkListGen <T>();

            if (list == null)
            {
                AddItem(item);
            }
            else
            {
                while (temp != null)
                {
                    if (item.CompareTo(temp.Data) == 1)
                    {
                        newList.AppendItem(temp.Data);
                        temp = temp.Next;
                    }
                    if (item.CompareTo(temp.Data) == -1)
                    {
                        newList.AppendItem(item);
                        newList.AppendItem(temp.Data);
                        temp = temp.Next;
                        break;
                    }
                    newList.AppendItem(temp.Data);
                    temp = temp.Next;
                }
                if (temp.Next == null)
                {
                    newList.AppendItem(temp.Data);
                }
            }
            list = newList.list;
        }
        public void InsertInOrder(T item)
        {
            LinkGen <T>     temp     = list;
            LinkListGen <T> tempList = new LinkListGen <T>();
            int             a        = 0;

            while (temp != null)
            {
                if (item.CompareTo(temp.Data) < 0 && a == 0)
                {
                    tempList.AppendItem(item);
                    tempList.AppendItem(temp.Data);
                    a++;
                    temp = temp.Next;
                }

                else
                {
                    tempList.AppendItem(temp.Data);
                    temp = temp.Next;
                }
            }
            if (a == 0)
            {
                tempList.AppendItem(item);
            }
            list = tempList.list;
        }// end InsertInOrder
        public void Concat(LinkListGen <T> list2)
        {
            LinkGen <T> temp = list2.list;

            while (temp != null)
            {
                AppendItem(temp.Data);
                temp = temp.Next;
            }
        }
        public void Sort()
        {
            LinkGen <T>     temp     = list;
            LinkListGen <T> tempList = new LinkListGen <T>();

            while (temp != null)
            {
                tempList.InsertInOrder(temp.Data);
                temp = temp.Next;
            }
            list = tempList.list;
        }
        public void RemoveItem(T item)
        {
            LinkGen <T>     temp    = list;
            LinkListGen <T> newList = new LinkListGen <T>();

            while (temp != null)
            {
                if (item.CompareTo(temp.Data) != 0)
                {
                    newList.AppendItem(temp.Data);
                }
                temp = temp.Next;
            }
            list = newList.list;
        }
Exemple #8
0
        static void Main(string[] args)
        {
            LinkListGen <int> list  = new LinkListGen <int>();
            LinkListGen <int> list2 = new LinkListGen <int>();



            list.AddItem(40);
            list.AddItem(60);
            list.AddItem(80);
            list.AddItem(90);
            list.AddItem(70);
            list.AddItem(20);
            list.AddItem(15);

            list.Sort();


            System.Console.WriteLine("Copy " + list.DisplayItems());


            list.Clear();



            list2.AddItem(40);
            list2.AddItem(60);
            list2.AddItem(80);
            list2.AddItem(100);
            list.Copy(list2);


            System.Console.WriteLine("Copy " + list.DisplayItems());

            list.Clear();

            list2.Clear();


            list.AddItem(20);
            list.AddItem(40);
            list.AddItem(60);
            list.AddItem(80);
            list.AddItem(100);

            list2.AddItem(10);
            list2.AddItem(30);
            list2.AddItem(50);
            list2.AddItem(70);
            list2.AddItem(90);


            list.Concat(list2);
            System.Console.WriteLine("Concat Two Lists: " + list.DisplayItems());

            list.Clear();

            list2.Clear();



            list.AddItem(40);
            list.AddItem(11);
            list.AddItem(77);
            list.AppendItem(54);
            list.AppendItem(23);
            System.Console.WriteLine("Append Item " + list.DisplayItems());



            //Remove Item
            list.RemoveItem(40);
            list.RemoveItem(11);
            list.RemoveItem(77);
            list.RemoveItem(54);
            list.RemoveItem(23);
            list.RemoveItem(30);
            System.Console.WriteLine("Remove Item " + list.DisplayItems());


            //IsPresent

            System.Console.WriteLine("Current Number of Items in List " + list.NumberOfItems());

            //Display Items In Order
            list.InsertInOrder(80);
            list.InsertInOrder(10);
            list.InsertInOrder(15);
            list.InsertInOrder(25);
            list.InsertInOrder(38);
            list.InsertInOrder(78);
            list.InsertInOrder(100);
            list.InsertInOrder(81);



            System.Console.WriteLine("Insert in order " + list.DisplayItems());



            System.Console.ReadLine();
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            LinkListGen <int> test1 = new LinkListGen <int>();

            Console.WriteLine("Testing AddItem: 1, 2, 3, 4");
            test1.AddItem(1);
            test1.AddItem(2);
            test1.AddItem(3);
            test1.AddItem(4);

            Console.WriteLine("\nTesting DisplayList:");
            test1.DisplayList();

            Console.WriteLine("\nTesting NumberOfItems: " + test1.NumberOfItems());

            Console.WriteLine("\nTesting IsPresentItem:");
            Console.WriteLine("3: " + test1.IsPresentItem(3));
            Console.WriteLine("5: " + test1.IsPresentItem(5));

            Console.WriteLine("\nTesting RemoveItem: 4, 2");
            test1.RemoveItem(4);
            test1.RemoveItem(2);
            test1.DisplayList();

            Console.WriteLine("\nTesting AppendItem: 2");
            test1.AppendItem(2);
            test1.DisplayList();

            Console.WriteLine("\nCreate test2 and AppendItem: 4, 5, 6");
            LinkListGen <int> test2 = new LinkListGen <int>();

            test2.AppendItem(4);
            test2.AppendItem(5);
            test2.AppendItem(6);
            test2.DisplayList();

            Console.WriteLine("\nConcat test1 and test2:");
            test1.Concat(test2);
            test1.DisplayList();

            Console.WriteLine("\nCopy test2 to test1:");
            Console.WriteLine("Current test1:");
            test1.DisplayList();
            Console.WriteLine("Current test2:");
            test2.DisplayList();
            test1.Copy(test2);
            Console.WriteLine("Updated test1:");
            test1.DisplayList();
            Console.WriteLine("test2 should remain unchanged:");
            test2.DisplayList();

            LinkListGen <int> test3 = new LinkListGen <int>();

            test3.AppendItem(1);
            test3.AppendItem(2);
            test3.AppendItem(4);
            test3.AppendItem(5);
            Console.WriteLine("\nNew list to test InsertInOrder:");
            test3.DisplayList();
            Console.WriteLine("InsertInOrder: 3");
            test3.InsertInOrder(3);
            test3.DisplayList();

            LinkListGen <int> test4 = new LinkListGen <int>();

            test4.AppendItem(5);
            test4.AppendItem(7);
            test4.AppendItem(4);
            test4.AppendItem(9);
            test4.AppendItem(2);
            Console.WriteLine("\ntest4 unsorted:");
            test4.DisplayList();
            Console.WriteLine("test4 sorted:");
            test4.Sort();
            test4.DisplayList();

            Console.ReadKey();
        }