21
правка
Изменения
Нет описания правки
==Наивная реализация на массиве==
Пусть <tex>Set -- </tex> — упорядоченное множество (массив), состоящее из <tex>n </tex> элементов. В<tex>Set[1, i] </tex> хранятся элементы множества, в <tex>Set[2, i] -- </tex> — их ключи.
Функция insert добавляет заданный элемент elem<tex>\mathrm {delete(Set, имеющий ключ elemKeykey)}</tex>:<code> '''func''' delete(Set, вkey):подходящее место множества i = 0 '''while''' i < n '''if''' key == Set [2, i] '''for''' j = i '''to''' n - 2 Set[1, j] = Set[1, j + 1] Set[2, j] = Set[2, j + 1] n = n - 1 Array.Resize(сохраняя свойство упорядоченностиSet[2], n).</code>
Функция delete удаляет элемент, имеющий ключ key <tex>\mathrm {minimum(сохраняя свойствоSet)}</tex>:<code>упорядоченности '''int''' minimum(Set).: '''return''' Set[1, 0]</code>
Функция search<tex>\mathrm {predecessor(Set, elem)}</tex>:<code> '''int''' predecessor(Set, которая получает на вход искомый ключ keyelem): '''for''' i = 1 '''to''' n - 1 '''if''' elem == Set[1, и возвращаетi]указатель на элемент множества '''return''' Set или специальное значение [1, i - 1] '''else''' '''return''' null, если такогоэлемента нет.</code>
Функция <tex>\mathrm {successor(Set, elem)}</tex>:<code> '''int search''' successor(Set, keyelem): '''for ''' i = 0 '''to ''' n - 12 '''if ''' elem == Set[21, i] == key '''return ''' Set[1, i+ 1] '''else ''' '''return ''' null</code>
==Примеры==