Каталог решений - Реализуем Стек, Очередь и Приоритетную очередь в 1С

Реализуем Стек, Очередь и Приоритетную очередь в 1С

Реализуем Стек, Очередь и Приоритетную очередь в 1С

В наличии

В статье рассматриваются способы реализации таких абстрактных структур данных, как стек, очередь и приоритетная очередь, используя готовые типы данных 1С. Выявляются «узкие» места, сложные моменты в реализации и сравнивается скорость работы.

Категория:

Описание

 

Стек

Стек — это абстрактный тип данных, представляющий собой список элементов, организованных по принципу ЛИФО ("последним пришел — первым вышел").

Основные операции со стеком это:

  • Push – вставка элемента наверх стека;

  • Top – получение верхнего элемента без удаления;

  • Pop – получение верхнего элемента и его удаление;

  • isEmpty – возвращает true, если стек пуст.

Для реализации стека будем использовать тип данных Массив. Реализуем вышеописанные операции:

#Область Стек

Функция Стек_Новый()
	Возврат Новый Массив;
КонецФункции

// Push
Процедура Стек_Положить(Стек, Значение)
	Стек.Добавить(Значение);
КонецПроцедуры

// Top
Функция Стек_ВзятьБезУдаления(Стек)
	Возврат Стек[Стек.ВГраница()];
КонецФункции

// Pop
Функция Стек_Взять(Стек)
	ИндексПоследнегоЭлемента = Стек.ВГраница();
	Значение = Стек[ИндексПоследнегоЭлемента];
	Стек.Удалить(ИндексПоследнегоЭлемента);
	Возврат Значение;
КонецФункции

// isEmpty
Функция Стек_Пустой(Стек)
	Возврат Стек.Количество() = 0;
КонецФункции

#КонецОбласти

Эти операции работают как в тонком так и в других клиентах.

 

has been added to your cart:
Оформление заказа