using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LinkedList
{
class Program
{
static void Main(string[] args)
{
LinkedList<int> collection = new LinkedList<int>();
while (true)
{
ShowMenu();
int selection = ReadInteger("\nSelect number of option: ");
switch (selection)
{
case 0:
Console.WriteLine("Enter the sequance of numbers to create list: ");
try
{
string input = Console.ReadLine();
collection = new LinkedList<int>(input.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries).Select(x => int.Parse(x)));
Console.WriteLine("Created");
}
catch
{
Console.WriteLine("Incorrect input!");
}
break;
case 1:
Console.Write("\nCollection: ");
foreach (var item in collection)
Console.Write($"{item} ");
Console.WriteLine();
break;
case 2:
Console.WriteLine($"\nCount of nodes: {collection.Count}");
break;
case 3:
int value = ReadInteger("\nEnter the number to find: ");
var node = collection.Find(value);
if (node == null)
{
Console.WriteLine("\nElement didn't find!");
}
else
{
Console.WriteLine($"\nNode was found with value: {node.Value}");
}
break;
case 4:
collection = Sort(collection);
Console.WriteLine("Sorted");
break;
case 5:
collection = new LinkedList<int>(collection.Reverse());
Console.WriteLine("Reversed!");
break;
default:
return;
}
}
}
static void ShowMenu()
{
Dictionary<int, string> menuItems = new Dictionary<int, string>()
{
{0, "Create Linked List" },
{1, "Display elements" },
{2, "Count the number of nodes" },
{3, "Search an element" },
{4, "Sort the linked list" },
{5, "Reverse the elements of the list" },
{6, "Exit" }
};
foreach (KeyValuePair<int, string> item in menuItems)
Console.WriteLine($"{item.Key}. {item.Value}");
}
static LinkedList<int> Sort(LinkedList<int> linkedList)
{
LinkedList<int> values = new LinkedList<int>();
while(linkedList.Count > 0)
{
int min = linkedList.Min();
linkedList.Remove(min);
values.AddLast(min);
}
return values;
}
static int ReadInteger(string message)
{
while (true)
{
Console.Write(message);
if (int.TryParse(Console.ReadLine(), out int value) && value >= 0)
return value;
else
{
Console.WriteLine("Incorrect input.");
}
}
}
}
}
Comments
Leave a comment