Collections: SimpleSet
Материал из Вики ИТ мехмата ЮФУ
(перенаправлено с «Unit Collections: SimpleSet»)
Интерфейс
type SimpleSet<DataType> = class
/// Создает пустое множество
constructor Create;
/// Добавляет элемент x во множество, если его там еще нет
procedure Add(x: DataType);
/// Удаляет элемент x из множества, если он там есть
procedure Remove(x: DataType);
/// Возвращает истину, если множество содержит элемент x
function Contains(x: DataType): boolean;
///Выводит содержимое множества на консоль
procedure Println();
end;
Реализация
interface
type
/// Шаблон класса SimpleSet [Простое множество]
SimpleSet<DataType> = class
private
/// Элементы множества
data := new DynArray<DataType>;
public
/// <summary>
/// Добавляет элемент во множество, если его там еще нет
/// </summary>
/// <param name="x">Добавляемый элемент</param>
procedure Add(x: DataType);
/// <summary>
/// Удаляет элемент из множества, если он там есть
/// </summary>
/// <param name="x">Удаляемый элемент</param>
procedure Remove(x: DataType);
/// <summary>
/// Возвращает истину, если множество содержит элемент
/// </summary>
/// <param name="x">Искомый элемент</param>
function Contains(x: DataType): boolean;
// ---------------------------------- Вывод ----------------------------------
///Выводит содержимое множества на консоль
procedure Println();
end;
implementation
// ---------------------------- Стандартные методы ---------------------------
{Добавляет элемент x во множество, если его там еще нет}
procedure SimpleSet<DataType>.Add(x: DataType);
begin
if data.Find(x) = -1 then
data.Add(x);
end;
{Удаляет элемент x из множества, если он там есть}
procedure SimpleSet<DataType>.Remove(x: DataType);
begin
var xPos := data.Find(x);
if xPos <> -1 then
data.Remove(xPos);
end;
{Возвращает истину, если множество содержит элемент x}
function SimpleSet<DataType>.Contains(x: DataType): boolean;
begin
result := (data.Find(x) <> -1);
end;
// ---------------------------------- Вывод ----------------------------------
{Выводит содержимое множества на консоль}
procedure SimpleSet<DataType>.Println();
begin
data.Println;
end;
Примеры использования
uses Collections;
begin
// Создание нового объекта простого множества
var ss := new SimpleSet<integer>;
// Добавление элемента во множество
ss.Add(5); ss.Add(-32); ss.Add(-7); ss.Add(43);
// Вывод множества
writeln('Содержимое множества:');
ss.Println;
writeln();
// Проверка, содержится ли элемент во множестве
writeln('97 содержится во множестве: ', ss.Contains(97));
writeln('5 содержится во множестве: ', ss.Contains(5));
writeln();
// Удаление элемента из множества
ss.Remove(8);
ss.Remove(-32);
writeln('Содержимое множества после удаления элементов:');
ss.Println; writeln();
end.
См. также
Collections (полный текст модуля):