Exemplo n.º 1
0
        public static void Main(string[] args)
        {
            SingleLinkedList list  = new SingleLinkedList();
            SingleLinkedList list2 = new SingleLinkedList();

            list.CreateList(new int[] { 5, 2, 3, 1, 8, 10 });
            list2.CreateList(new int[] { 9, 6, 7, 11, 12 });
            while (true)
            {
                Console.WriteLine("1.Display list ");
                Console.WriteLine("2.Count the number of nodes ");
                Console.WriteLine("3.Search for an element ");
                Console.WriteLine("4.Insert in Start");
                Console.WriteLine("5.Insert in end");
                Console.WriteLine("6.Insert At");
                Console.WriteLine("7.Delete item");
                Console.WriteLine("8.Reverse List");
                Console.WriteLine("9.Bubble Sort");
                Console.WriteLine("9.Bubble Sort By Exchanging links");
                Console.WriteLine("99.end ");
                //Console.WriteLine("6.Display list ");
                Console.Write("Enter your choice:");
                var choice = Convert.ToInt32(Console.ReadLine());
                if (choice == 99)
                {
                    break;
                }
                Console.WriteLine("----------Results start--------------");
                var element = 0;
                switch (choice)
                {
                case 1:
                    Console.WriteLine("----------List1--------------");
                    list.DisplayList();
                    Console.WriteLine("----------List2--------------");
                    list2.DisplayList();
                    break;

                case 2:
                    list.Count();
                    break;

                case 3:
                    Console.Write("Enter your choice:");
                    element = Convert.ToInt32(Console.ReadLine());
                    list.Find(element);
                    break;

                case 4:
                    Console.Write("Enter your choice:");
                    element = Convert.ToInt32(Console.ReadLine());
                    list.insertAtStart(element);
                    break;

                case 5:
                    Console.Write("Enter your choice:");
                    element = Convert.ToInt32(Console.ReadLine());
                    list.insertAtEnd(element);
                    break;

                case 6:
                    Console.Write("Enter your choice:");
                    element = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Enter your loc:");
                    var loc = Convert.ToInt32(Console.ReadLine());
                    list.insertAt(element, loc);
                    break;

                case 7:
                    Console.Write("Enter your choice:");
                    element = Convert.ToInt32(Console.ReadLine());
                    list.DeleteNode(element);
                    break;

                case 8:
                    list.ReverseList();
                    break;

                case 9:
                    list.BubbleSort();
                    break;

                case 10:
                    list.BubbleSortByExLinks();
                    break;

                case 11:
                    var result = list.MergeLinkedList(list2);
                    result.DisplayList();
                    break;
                }
                Console.WriteLine("----------Results end--------------");
            }
        }
        static void Main(string[] args)
        {
            int choice, data, k, x;

            SingleLinkedList list = new SingleLinkedList();

            list.CreateList();

            while (true)
            {
                Console.WriteLine(" 1. Display list");
                Console.WriteLine(" 2. Count the number of nodes");
                Console.WriteLine(" 3. Search for an element");
                Console.WriteLine(" 4. Insert in empty list/Insert in beginning of the list");
                Console.WriteLine(" 5. Insert a node at the end of the list");
                Console.WriteLine(" 6. Insert a node after a specified node");
                Console.WriteLine(" 7. Insert a node before a specified node");
                Console.WriteLine(" 8. Insert a node at a given position");
                Console.WriteLine(" 9. Delete first node");
                Console.WriteLine("10. Delete last node");
                Console.WriteLine("11. Delete any node");
                Console.WriteLine("12. Reverse the list");
                Console.WriteLine("13. Bubble sort by exchanging data");
                Console.WriteLine("14. Bubble sort by exchanging links");
                Console.WriteLine("15. MergeSort");
                Console.WriteLine("16. Insert Cycle");
                Console.WriteLine("17. Detect Cycle");
                Console.WriteLine("18. Remove Cycle");
                Console.WriteLine("19. Quit\n");

                Console.Write("Enter your choice : ");

                choice = Convert.ToInt32(Console.ReadLine());

                if (choice == 19)
                {
                    break;
                }

                switch (choice)
                {
                case 1:
                    list.DisplayList();
                    break;

                case 2:
                    list.CountNodes();
                    break;

                case 3:
                    Console.Write("Enter the element to be searched : ");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.Search(data);
                    break;

                case 4:
                    Console.Write("Enter the element to be inserted : ");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.InsertInBeginning(data);
                    break;

                case 5:
                    Console.Write("Enter the element to be inserted : ");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.InsertAtEnd(data);
                    break;

                case 6:
                    Console.Write("Enter the element to be searched : ");
                    data = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Enter the element after which to insert : ");
                    x = Convert.ToInt32(Console.ReadLine());
                    list.InsertAfter(data, x);
                    break;

                case 7:
                    Console.Write("Enter the element to be searched : ");
                    data = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Enter the element before which to insert : ");
                    x = Convert.ToInt32(Console.ReadLine());
                    list.InsertBefore(data, x);
                    break;

                case 8:
                    Console.Write("Enter the element to be searched : ");
                    data = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Enter the position at which to insert : ");
                    k = Convert.ToInt32(Console.ReadLine());
                    list.InsertAtPosition(data, k);
                    break;

                case 9:
                    list.DeleteFirstNode();
                    break;

                case 10:
                    list.DeleteLastNode();
                    break;

                case 11:
                    Console.Write("Enter the element to be deleted : ");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.DeleteNode(data);
                    break;

                case 12:
                    list.ReverseList();
                    break;

                case 13:
                    list.BubbleSortExData();
                    break;

                case 14:
                    list.BubbleSortExLinks();
                    break;

                case 15:
                    list.MergeSort();
                    break;

                case 16:
                    Console.Write("Enter the element at which the cycle has to be inserted : ");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.InsertCycle(data);
                    break;

                case 17:
                    if (list.HasCycle())
                    {
                        Console.WriteLine("List has a cycle");
                    }
                    else
                    {
                        Console.WriteLine("List does not have a cycle");
                    }
                    break;

                case 18:
                    list.RemoveCycle();
                    break;

                default:
                    Console.WriteLine("Wrong choice");
                    break;
                }
                Console.WriteLine();
            }
            Console.WriteLine("Exiting");
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            int choice, data, k, x;

            SingleLinkedList list = new SingleLinkedList();

            list.CreateList();

            while (true)
            {
                Console.WriteLine("1.Display List");
                Console.WriteLine("2.Count the number of nodes");
                Console.WriteLine("3.Search for an element");
                Console.WriteLine("4.Insert in empty list/Insert in beginning of list");
                Console.WriteLine("5.Insert a node at the end of the list");
                Console.WriteLine("6.Insert a node after a specified node");
                Console.WriteLine("7.Insert a node before a specified node");
                Console.WriteLine("8.Insert a node at a given postion");
                Console.WriteLine("9.Delete first node");
                Console.WriteLine("10.Delete last node");
                Console.WriteLine("11.Delete any node");
                Console.WriteLine("12.Reverse the list");
                Console.WriteLine("13.Bubble sort by exchanging data");
                Console.WriteLine("14.Bubble sort by exchanging links");
                Console.WriteLine("15.Merging with two lists");
                Console.WriteLine("16.Quit");

                Console.Write("Enter your choice:");
                choice = Convert.ToInt32(Console.ReadLine());

                switch (choice)
                {
                case 1:
                    list.DisplayList();
                    break;

                case 2:
                    list.CountNodes();
                    break;

                case 3:
                    Console.Write("Enter the element to be searched:");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.Search(data);
                    break;

                case 4:
                    Console.Write("Enter the element to be inserted:");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.InsertInBeginning(data);
                    break;

                case 5:
                    Console.Write("Enter the element to be inserted:");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.InsertInEnd(data);
                    break;

                case 6:
                    Console.Write("Enter the element to be inserted:");
                    data = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Enter the element after which to insert:");
                    x = Convert.ToInt32(Console.ReadLine());
                    list.InsertANodeAfterGivenNode(data, x);
                    break;

                case 7:
                    Console.Write("Enter the element to be inserted:");
                    data = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Enter the element before which to insert:");
                    x = Convert.ToInt32(Console.ReadLine());
                    list.InsertANodeBeforeGivenNode(data, x);
                    break;

                case 8:
                    Console.Write("Enter the element to be inserted:");
                    data = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Enter the position at which to insert:");
                    k = Convert.ToInt32(Console.ReadLine());
                    list.InsertANodeAtGivenPosition(data, k);
                    break;

                case 9:
                    list.DeleteFirstNode();
                    break;

                case 10:
                    list.DeleteEndNode();
                    break;

                case 11:
                    Console.Write("Enter the element to be deleted:");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.DeleteNode(data);
                    break;

                case 12:
                    list.ReverseList();
                    break;

                case 13:
                    list.BubbleSortExcByData();
                    break;

                case 14:
                    list.BubbleSortExcByLinks();
                    break;

                case 15:
                    list.MergeSort();
                    break;

                case 16:
                    list.DoublyLinkedList();
                    break;

                default:
                    Console.WriteLine("Wrong Choice");
                    break;
                }
                Console.WriteLine();
            }
            Console.WriteLine("Exiting");
        }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            int choice, data, k, x;

            SingleLinkedList list = new SingleLinkedList();

            list.CreateList();

            while (true)
            {
                Console.WriteLine("1. Display list");
                Console.WriteLine("2. Count nodes in the list");
                Console.WriteLine("3. Search node in the list");
                Console.WriteLine("4. Insert node in  the empty list/Insert at the beggining of  the list");
                Console.WriteLine("5. Insert at the end of the list");
                Console.WriteLine("6. Insert node after a particular node");
                Console.WriteLine("7. Insert node before a particular node");
                Console.WriteLine("8. Insert node at the particular position");
                Console.WriteLine("9. Delete first node");
                Console.WriteLine("10. Delete last node");
                Console.WriteLine("11. Delete particular node");
                Console.WriteLine("12. List reverse");
                Console.WriteLine("13. Bubble sort - data changes");
                Console.WriteLine("14. Bubble sort - link changes");
                Console.WriteLine("15. Merge two sorted list");
                Console.WriteLine("16. Merge Sort");
                Console.WriteLine("17. Quit");
                do
                {
                    Console.Write("Enter your choice: ");
                }while (!int.TryParse(Console.ReadLine(), out choice));
                if (choice == 17)
                {
                    break;
                }
                switch (choice)
                {
                case 1:
                    Console.Clear();
                    list.DisplayList();
                    break;

                case 2:
                    Console.Clear();
                    list.CountNodes();
                    break;

                case 3:
                    Console.Clear();
                    do
                    {
                        Console.Write("Insert element you want to search: ");
                    }while (!int.TryParse(Console.ReadLine(), out data));
                    list.Search(data);
                    break;

                case 4:
                    Console.Clear();
                    do
                    {
                        Console.Write("Insert node: ");
                    }while (!int.TryParse(Console.ReadLine(), out data));
                    list.InsertInBeginning(data);
                    break;

                case 5:
                    Console.Clear();
                    do
                    {
                        Console.Write("Insert node: ");
                    }while (!int.TryParse(Console.ReadLine(), out data));
                    list.InsertAtEnd(data);
                    break;

                case 6:
                    Console.Clear();
                    do
                    {
                        Console.Write("Insert node: ");
                    }while (!int.TryParse(Console.ReadLine(), out data));
                    do
                    {
                        Console.Write("Insert particular node: ");
                    }while (!int.TryParse(Console.ReadLine(), out x));
                    list.InsertAfter(data, x);
                    break;

                case 7:
                    Console.Clear();
                    do
                    {
                        Console.Write("Insert node: ");
                    }while (!int.TryParse(Console.ReadLine(), out data));
                    do
                    {
                        Console.Write("Insert particular node: ");
                    }while (!int.TryParse(Console.ReadLine(), out x));
                    list.InsertBefore(data, x);
                    break;

                case 8:
                    Console.Clear();
                    do
                    {
                        Console.Write("Insert node: ");
                    }while (!int.TryParse(Console.ReadLine(), out data));
                    do
                    {
                        Console.Write("Insert position you want to insert on: ");
                    }while (!int.TryParse(Console.ReadLine(), out k));
                    list.InsertAtPosition(data, k);
                    break;

                case 9:
                    Console.Clear();
                    list.DeleteFirstNode();
                    break;

                case 10:
                    Console.Clear();
                    list.DeleteLastNode();
                    break;

                case 11:
                    Console.Clear();
                    do
                    {
                        Console.Write("Insert the node you want to delete: ");
                    }while(!int.TryParse(Console.ReadLine(), out data));
                    list.DeleteNode(data);
                    break;

                case 12:
                    Console.Clear();
                    list.ReverseList();
                    break;

                case 13:
                    Console.Clear();
                    list.BubbleSortExData();
                    break;

                case 14:
                    Console.Clear();
                    list.BubbleSortExLinks();
                    break;

                case 15:
                    list.MergeList(list);
                    break;

                case 16:
                    Console.Clear();
                    list.MergeSort();
                    break;

                default:
                    Console.Clear();
                    Console.WriteLine("Wrong choice! Try again!");
                    break;
                }
                Console.WriteLine();
            }
            Console.WriteLine("Exit");
        }
Exemplo n.º 5
0
 public void Concatenate(SingleLinkedList list)
 {
     //if (start == null)
 }
Exemplo n.º 6
0
        static void Main(string[] args)
        {
            int choice, data, position, existData;

            // SingleLinkedList 인스턴스 생성
            SingleLinkedList list = new SingleLinkedList();

            // LinkedList 생성
            list.CreateList();

            while (true)
            {
                Console.WriteLine("\n1. Display list");
                Console.WriteLine("2. Count the number of nodes");
                Console.WriteLine("3. Search for an element");
                Console.WriteLine("4. Insert in empty list/Insert in the beggining of the linkedlist.");
                Console.WriteLine("5. Insert a noode at the end of the list");
                Console.WriteLine("6. Insert a node after a specified node");

                Console.WriteLine("7. Insert a node before a specified node");
                Console.WriteLine("8. Insert a node at a given position");
                Console.WriteLine("9. Delete first node");
                Console.WriteLine("10. Delete last node");
                Console.WriteLine("11. Delete any node");
                Console.WriteLine("12. Reverse the list");

                Console.Write("Please input a number: ");
                choice = Convert.ToInt32(Console.ReadLine());

                switch (choice)
                {
                // 1. LinkedList에 있는 데이터 출력
                case 1:
                    list.DisplayList();
                    break;

                // 2. LinkedList에 있는 노드 개수 출력
                case 2:
                    list.CountNodes();
                    break;

                // 3. LinkedList에서 입력 데이터 탐색
                case 3:
                    Console.Write("Enter the element to be searched: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.Search(data);
                    break;

                // 4. LinkedList 처음 부분에 삽입
                case 4:
                    Console.Write("Enter the element to be inserted: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.InsertAtBeginning(data);
                    break;

                // 5. LinkedList 마지막 부분에 삽입
                case 5:
                    Console.Write("Enter the element to be inserted: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.InsertAtEnd(data);
                    break;

                // 6. LinkedList 특정 노드 뒤에 삽입
                case 6:
                    Console.Write("Enter the element to be inserted: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Enter the existing node: ");
                    existData = Convert.ToInt32(Console.ReadLine());
                    list.InsertAfter(data, existData);
                    break;

                // 7. LinkedList 특정 노드 뒤에 삽입
                case 7:
                    Console.Write("Enter the element to be inserted: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Enter the position to insert in: ");
                    existData = Convert.ToInt32(Console.ReadLine());
                    list.InsertBefore(data, existData);
                    break;

                // 8. LinkedList 특정 위치에 삽입
                case 8:
                    Console.Write("Enter the element to be inserted: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Enter the existing position: ");
                    position = Convert.ToInt32(Console.ReadLine());
                    list.InsertAtPosition(data, position);
                    break;

                // 9. LinkedList 첫 번째 노드 제거
                case 9:
                    Console.Write("Delete first node");
                    list.DeleteAtFirst();
                    break;

                // 10. LinkedList 마지막 노드 제거
                case 10:
                    Console.Write("Delete last node");
                    list.DeleteAtEnd();
                    break;

                // 11. LinkedList 특정 노드 제거
                case 11:
                    Console.Write("Enter the element to be deleted: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.DeleteNode(data);
                    break;

                // 12. LinkedList 순서 변경
                case 12:
                    Console.Write("Reverse the LinkedList.");
                    list.Reverse();
                    break;

                default:
                    Console.WriteLine("Wrong Choice");
                    break;
                }
            }
        }
Exemplo n.º 7
0
        static void Main(string[] args)
        {
            int choice, data, k, x;

            SingleLinkedList list = new SingleLinkedList();

            list.CreateList();

            while (true)
            {
                Console.WriteLine("1. Display list");
                Console.WriteLine("2. Count the number of nodes");
                Console.WriteLine("3. Search for an element");
                Console.WriteLine("4. Insert in empty list / Insert in beginning of the list");
                Console.WriteLine("5. Inset a node at the end of the list");
                Console.WriteLine("6. Insert a node after a specified node");
                Console.WriteLine("7. Insert a node before a specified node");
                Console.WriteLine("8. Insert a node at a given position");
                Console.WriteLine("9. Delete first node");
                Console.WriteLine("10. Delete last node");
                Console.WriteLine("11. Delete any node");
                Console.WriteLine("12. Reverse the list");
                Console.WriteLine("13. Bubble sort by exchanging data");
                Console.WriteLine("14. Bubble sort by exchanging links");
                Console.WriteLine("15. Merge a new list with the current list");
                Console.WriteLine("16. Sort the list using Merge Sort");
                Console.WriteLine("17. Insert a cycle");
                Console.WriteLine("18. Detect a cycle");
                Console.WriteLine("19. Remove a cycle");

                Console.WriteLine("Enter your choice: ");
                choice = Convert.ToInt32(Console.ReadLine());

                if (choice == 1)
                {
                    break;
                }

                switch (choice)
                {
                case 1:     // Display List
                    list.DisplayList();
                    break;

                case 2:     // Count Nodes
                    list.CountNodes();
                    break;

                case 3:     // Search by data
                    Console.Write("Enter the element to be searched: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.Search(data);
                    break;

                case 4:     // Insert new node at beginning
                    Console.Write("Enter the element to be inserted: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.InsertInBeginning(data);
                    break;

                case 5:     // Insert new node at end
                    Console.Write("Enter the element to be inserted: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.InsertAtEnd(data);
                    break;

                case 6:     // Insert new node after a specific node
                    Console.Write("Enter the element to be inserted: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Enter the element after which to insert: ");
                    choice = Convert.ToInt32(Console.ReadLine());
                    list.InsertAfter(data, choice);
                    break;

                case 7:     // Insert new node before a speecific node
                    Console.Write("Enter the element to be inserted: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Enter the element before which to insert: ");
                    choice = Convert.ToInt32(Console.ReadLine());
                    list.InsertBefore(data, choice);
                    break;

                case 8:     // Insert a new node at a specific node position
                    Console.Write("Enter the element to be inserted: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Enter the element at which to insert: ");
                    choice = Convert.ToInt32(Console.ReadLine());
                    list.InsertAtPosition(data, choice);
                    break;

                case 9:     // Delete first node
                    list.DeleteFirstNode();
                    break;

                case 10:     // Delete last node
                    list.DeleteLastNode();
                    break;

                case 11:     // Delete a node by its data/name
                    Console.Write("Enter the element(data) to be inserted: ");
                    data = Convert.ToInt32(Console.ReadLine());
                    list.DeleteNode(data);
                    break;

                case 12:     // Reverse List
                    list.ReverseList();
                    break;

                case 13:     // Bubble sort by exchanging data
                    list.BubbleSortExData();
                    break;

                case 14:     // Bubble sort by exchanging links
                    list.BubbleSortExLinks();
                    break;

                case 15:     // Merge a new list with the current list
                    Demo demo = new Demo();
                    demo.MergeListTest(list);
                    break;

                case 16:     // Sort the list using Merge Sort
                    list.MergeSort();
                    break;

                case 17:     // Create a Cycle
                    Console.Write("Enter element to start cycle at: ");
                    x = Convert.ToInt32(Console.ReadLine());
                    list.InsertCycle(x);
                    break;

                case 18:     // Detect a Cycle
                    list.HasCycle();
                    break;

                case 19:     // Remove a Cycle
                    list.RemoveCycle();
                    break;
                }
            }
        }