Ассоциативный массив: различия между версиями

[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
→‎Ссылки: -навигация по документации по различным языкам
порядок разделов, -См. также, -микросекции, rev, rq
Строка 5:
Предполагается, что ассоциативный массив не может хранить две пары с одинаковыми ключами.
 
В паре <math>(k, v)</math> значение <math>v</math> называется значением, ассоциированным с ключом <math>k</math>. Где <math>k</math>  — это ''key'', a <math>v</math>  — ''value''. Семантика и названия вышеупомянутых операций в разных реализациях ассоциативного массива могут отличаться.
 
Операция <tt>FIND(ключ)</tt> возвращает значение, ассоциированное с заданным ключом, или некоторый специальный объект UNDEF, означающий, что значения, ассоциированного с заданным ключом, нет. Две другие операции ничего не возвращают (за исключением, возможно, информации о том, успешно ли была выполнена данная операция).
Строка 11:
Ассоциативный массив с точки зрения интерфейса удобно рассматривать как обычный [[массив (программирование)|массив]], в котором в качестве индексов можно использовать не только целые числа, но и значения других типов — например, строки.
 
Поддержка ассоциативных массивов есть во многих [[Интерпретируемый язык программирования|интерпретируемых]] [[Высокоуровневый язык программирования|языках программирования высокого уровня]], таких, как [[Perl]], [[PHP]], [[Python]], [[Ruby]], [[Tcl]], [[JavaScript]]<ref>В [[JavaScript]] объекты поддерживают создание свойств с произвольным (строковым) ключом, таким образом, они реализуют также базовые свойства ассоциативного массива. См.: {{cite web|url=http://learn.javascript.ru/object|title=Объекты как ассоциативные массивы|work=Учебник JavaScript|accessdate=2012-12-20|archiveurl=https://www.webcitation.org/6D72tLIa1?url=http://learn.javascript.ru/object|archivedate=2012-12-23}}</ref> и дрдругих. Для языков, которые не имеют встроенных средств работы с ассоциативными массивами, существует множество реализаций в виде [[Библиотека (программирование)|библиотек]].
 
Примером ассоциативного массива является телефонный справочник.: Значениемзначением в данном случае является совокупность «{{nobr|Ф. И. О. +}} адрес», а ключом  — номер телефона., Одинодин номер телефона имеет одного владельца, но один человек может иметь несколько номеров.
== Примеры ==
Примером ассоциативного массива является телефонный справочник. Значением в данном случае является совокупность «{{nobr|Ф. И. О. +}} адрес», а ключом — номер телефона. Один номер телефона имеет одного владельца, но один человек может иметь несколько номеров.
 
УказанныеТри триосновных операции часто дополняются другими., Наиболеенаиболее популярные расширения включают следующие операции:
== Расширения ассоциативного массива ==
* <tt>CLEAR</tt> — удалить все записи,
Указанные три операции часто дополняются другими. Наиболее популярные расширения включают следующие операции:
* <tt>CLEAREACH</tt> — удалить«пробежаться» всепо записивсем хранимым парам,
* <tt>MAXMIN</tt> — найти пару с максимальнымминимальным значением ключа,
* <tt>EACH</tt> — «пробежаться» по всем хранимым парам
* <tt>MINMAX</tt> — найти пару с минимальныммаксимальным значением ключа.
* <tt>MAX</tt> — найти пару с максимальным значением ключа
 
В последних двух случаях необходимо, чтобы на ключах была определена операция сравнения.
Строка 40 ⟶ 38 :
Хеш-таблицы плохи также тем, что на их основе нельзя реализовать быстро работающие дополнительные операции MIN, MAX и алгоритм обхода всех хранимых пар в порядке возрастания или убывания ключей.
 
== См. такжеПримечания ==
{{примечания}}
* [[Индексный массив]]
* [[База данных «ключ-значение»]]
* [[Хеш-таблица]]
* [[Сбалансированное дерево поиска]]
* [[Красно-чёрное дерево]]
 
== Ссылки ==
Строка 51 ⟶ 45 :
* [http://www.nist.gov/dads/HTML/dictionary.html NIST’s Dictionary of Algorithms and Data Structures: Association List]
 
{{rq|sources|style}}
== Примечания ==
{{примечания}}
 
{{Нет ссылок|дата=12 мая 2011}}
{{Структуры данных}}
{{Типы данных}}
 
[[Категория:Структуры данных]]
[[Категория:Статьи с примерами кода Python]]