М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
pelmenev777
pelmenev777
10.05.2021 15:31 •  Информатика

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

👇
Ответ:
milena162
milena162
10.05.2021

На языке С#

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

4,5(44 оценок)
Ответ:
danilyakimov1
danilyakimov1
10.05.2021
Хорошо, давайте начнем с создания базового класса "список" на языке 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(), а извлекается из начала списка так же, как и в классе "Список".

Надеюсь, это поможет вам понять, как создать базовый класс "Список" и производные классы "Стек" и "Очередь". Если у вас есть еще вопросы, пожалуйста, задавайте!
4,8(7 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ