Ираказефирка
21.04.2020 14:05

На языке С# Создать базовый класс «список» с виртуальными функциями вставки и извлечения. Реализовать на базе списка производные классы стека и очереди.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
lerak1301
13.02.2021 11:10

На языке С#

Создать базовый класс «список» с виртуальными функциями вставки и извлечения. Реализовать на базе списка производные классы стека и очереди,красный.

0,0(0 оценок)
Ответ:
orlovapolina14
18.01.2024 19:04
Хорошо, давайте начнем с создания базового класса "список" на языке C#:

```csharp
public class Список
{
protected List элементы; // список элементов

public Список()
{
элементы = new List();
}

public virtual void Вставка(int элемент)
{
элементы.Add(элемент);
}

public virtual int Извлечение()
{
if (элементы.Count == 0)
{
throw new InvalidOperationException("Список пуст");
}

int элемент = элементы[0];
элементы.RemoveAt(0);
return элемент;
}
}
```

Здесь мы создали класс "Список" с защищенным полем "элементы" типа List, которое будет хранить элементы списка. Инициализируем его в конструкторе "Список()".

В классе "Список" определены две виртуальные функции: "Вставка()" и "Извлечение()". "Вставка()" добавляет заданный элемент в конец списка с помощью метода Add(). "Извлечение()" извлекает первый элемент из списка с помощью индексации элементов и метода RemoveAt() по индексу 0.

Теперь давайте реализуем производные классы "Стек" и "Очередь" на базе класса "Список":

```csharp
public class Стек : Список
{
public override void Вставка(int элемент)
{
элементы.Insert(0, элемент);
}

public override int Извлечение()
{
if (элементы.Count == 0)
{
throw new InvalidOperationException("Стек пуст");
}

int элемент = элементы[0];
элементы.RemoveAt(0);
return элемент;
}
}

public class Очередь : Список
{
public override void Вставка(int элемент)
{
элементы.Add(элемент);
}

public override int Извлечение()
{
if (элементы.Count == 0)
{
throw new InvalidOperationException("Очередь пуста");
}

int элемент = элементы[0];
элементы.RemoveAt(0);
return элемент;
}
}
```

В классе "Стек" переопределены методы "Вставка()" и "Извлечение()". В "Вставка()" элемент добавляется в начало списка с помощью метода Insert(). В "Извлечение()" мы также используем индексацию и метод RemoveAt() для извлечения элемента из начала списка.

В классе "Очередь" также переопределены методы "Вставка()" и "Извлечение()". Здесь элемент добавляется в конец списка с помощью метода Add(), а извлекается из начала списка так же, как и в классе "Список".

Надеюсь, это поможет вам понять, как создать базовый класс "Список" и производные классы "Стек" и "Очередь". Если у вас есть еще вопросы, пожалуйста, задавайте!
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота