69 lines
1.9 KiB
C#
69 lines
1.9 KiB
C#
using System.Collections;
|
|
using System;
|
|
|
|
// Класс компонента компьютера
|
|
public class ComputerComponent
|
|
{
|
|
public string Name { get; set; }
|
|
public string Type { get; set; }
|
|
|
|
public ComputerComponent(string name, string type)
|
|
{
|
|
Name = name;
|
|
Type = type;
|
|
}
|
|
}
|
|
|
|
// АТД Очередь на основе массива
|
|
public class CustomQueue
|
|
{
|
|
private ArrayList elements = new ArrayList();
|
|
|
|
public int Count { get { return elements.Count; } }
|
|
|
|
public void Enqueue(ComputerComponent component)
|
|
{
|
|
elements.Add(component);
|
|
}
|
|
|
|
public ComputerComponent Dequeue()
|
|
{
|
|
if (elements.Count == 0)
|
|
{
|
|
throw new InvalidOperationException("Queue is empty");
|
|
}
|
|
|
|
ComputerComponent component = (ComputerComponent)elements[0];
|
|
elements.RemoveAt(0);
|
|
return component;
|
|
}
|
|
|
|
public ComputerComponent Peek()
|
|
{
|
|
if (elements.Count == 0)
|
|
{
|
|
throw new InvalidOperationException("Queue is empty");
|
|
}
|
|
|
|
return (ComputerComponent)elements[0];
|
|
}
|
|
}
|
|
class Program
|
|
{
|
|
public static void Main(string[] args)
|
|
{
|
|
CustomQueue queue = new CustomQueue();
|
|
|
|
// Добавление компонентов в очередь
|
|
ComputerComponent cpu = new ComputerComponent("Intel Core i7", "CPU");
|
|
ComputerComponent gpu = new ComputerComponent("Nvidia RTX 3080", "GPU");
|
|
|
|
queue.Enqueue(cpu);
|
|
queue.Enqueue(gpu);
|
|
|
|
// Проверка совместимости компонентов в сборке
|
|
Console.WriteLine("Первый компонент в очереди: {0} ({1})", queue.Peek().Name, queue.Peek().Type);
|
|
Console.WriteLine("Извлечен компонент из очереди: {0} ({1})", queue.Dequeue().Name, queue.Dequeue().Type);
|
|
}
|
|
}
|