
runner.Next = runner.Next.Next;
}
else
{
runner = runner.Next;
}
}
current = current.Next;
} while (current != head);
}
public void PrintList()
{
if (head == null)
{
Console.WriteLine("Список пуст."); return;
}
Node current = head;
do
{
Console.Write(current.Value + " "); current = current.Next;
} while (current != head);
Console.WriteLine();
}
}
class Program
{
static void Main(string[] args)
{
MyList list = new MyList();
bool keepRunning = true;
while (keepRunning)
{
Console.WriteLine("1. Добавить элемент"); Console.WriteLine("2. Удалить элемент"); Console.WriteLine("3. Очистить список"); Console.WriteLine("4. Поиск элемента"); Console.WriteLine("5. Удалить четные элементы"); Console.WriteLine("6. Удалить повторяющиеся элементы"); Console.WriteLine("7. Показать список"); Console.WriteLine("8. Выйти");
string choice = Console.ReadLine();
switch (choice)
{
case "1":
Console.Write("Введите элемент: ");
int addValue = int.Parse(Console.ReadLine()); list.Add(addValue);
break; case "2":
Console.Write("Введите элемент для удаления: "); int removeValue = int.Parse(Console.ReadLine()); bool removed = list.RemoveItem(removeValue);
Console.WriteLine(removed ? "Элемент удален." : "Элемент не
найден.");
break; case "3":
bool cleared = list.Clear();
Console.WriteLine(cleared ? "Список очищен." : "Список пуст."); break;
case "4":
Console.Write("Введите элемент для поиска: "); int searchValue = int.Parse(Console.ReadLine()); bool found = list.Search(searchValue);
Console.WriteLine(found ? "Элемент найден." : "Элемент не
найден.");
break; case "5":
list.RemoveEven();
Console.WriteLine("Четные элементы удалены."); break;
case "6":
list.RemoveDuplicates(); Console.WriteLine("Повторяющиеся элементы удалены."); break;
case "7": list.PrintList(); break;
case "8":
keepRunning = false; break;
default:
Console.WriteLine("Неверный выбор."); break;
}
}
}
}