Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Упорядоченные структуры данных




Ассоциативные массивы

Очередь и стек

Реализация многомерных массивов

Двумерные таблицы могут быть реализованы различным образом:

а) если длина всех строк таблицы одинакова и постоянна, то наилучшим вариантом является использование одномерного вектора, такой вариант уже был рассмотрен ранее;

б) если длина строк различается, то можно использовать вектор векторов или список векторов, в зависимости от требований к количеству строк.

Реализация многомерных таблиц осуществляется аналогично.

Очередь - это последовательность элементов одного и того же типа, к которой добавление и удаление элементов происходит только с одного из концов.

Различают очередь, в которой добавление и удаление элементов может осуществляться с любого конца (deque) и очередь, в которой добавление происходит с одного конца, а удаление с другого (queue или очедедь FIFO (первый пришел, первый ушел)).

Очередь, в которой добавление и удаление происходит с одного и того же конца, называют очередь LIFO (последний пришел, первый ушел) или, по-другому, стеком.

Очереди и стеки могут быть ограниченными, в этом случае задана константа, определяющая максимальное количество элементов. В противном случае их называют неограниченными.

Ограниченные очереди и стеки достаточно легко рализуются через вектор, неограниченные - через список.

Стеки широко используются в задачах синтаксического анализа. Также они используются при вызове подпрограмм для сохранения контента вызывающей программы.

 

Ассоциативный массив (словарь, карта) — абстрактный тип данных (интерфейс к хранилищу данных), позволяющий хранить пары (ключ, значение) и поддерживающий операции добавления пары, а также поиска и удаления пары по ключу. Предполагается, что ассоциативный массив не может хранить две пары с одинаковыми ключами. В паре (k,v) значение v называется значением, ассоциированным с ключом k.

Реализация ассоциативного массива рассмотрена в параграфе 3.4.

Другие струткуры данных рассмотрены в параграфах 3.4 - 3.6.

В обычном векторе для поиска элемента требуется просмотреть в среднем половину списка, т.е. время выполнения алгоритма линейно зависит от количества данных. Если объем данных большой и запросы к ним выполняются часто, такая сложность алгоритма неприемлема.

Наиболее простым решением является хранение данных, упорядоченных по значению. В этом случае, используя метод половинного деления (двоичного поиска) сложность алгоритма составляет log2(N).

(Алгоритм половинного деления)

Более эффективным методом является использование деревьев, что будет рассмотрено далее.

Чтобы данные были расположены упорядоченно, их требуется отсортировать.




Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 399; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.