Сообщений 14    Оценка 30        Оценить  
Система Orphus

Структуры данных и стандартная библиотека шаблонов

Автор: Коллинз У. Дж.
Издательство: Бином-Пресс, 2004
624 страницы

Материал предоставил: Валерий Лаптев
Найти в магазинах

Аннотация

Содержание
Комментарии

Аннотация

В книге рассматриваются основы организации структур данных и их реализации с использованием C++ в качестве языка инструкций. Большинство рассматриваемых структур данных, таких как массивы, векторы, очереди, списки и стеки, имеются в составе стандартной библиотеки шаблонов (STL). Достаточно подробно исследуется каноническая реализация этих структур данных, которая является как эффективной, так и краткой. Большое внимание уделяется также алгоритмам для работы со структурами данных.

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

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

Содержание

Содержание
Предисловие
Глава 1. Классы в С++
Глава 2. Структуры хранения данных для классов-контейнеров
Глава 3. Введение в программную инженерию
Глава 4. Рекурсия
Глава 5. Векторы и очереди с двустронним доступом
Глава 6. Списки
Глава 7. Очереди и стеки
Глава 8. Двоичные деревья и двоичные деревья поиска
Глава 9. AVL-деревья
Глава 10. Красно-черные деревья
Глава 11. Очереди с приоритетом и кучи
Глава 12. Сортировка
Глава 13. Поиск и хеш-классы
Глава 14. Графы, деревья, сети
Приложение 1. Некоторые сведения из математики
Приложение 2. Класс string
Приложение 3. Полиморфизм

Комментарии

Валерий Лаптев

В этом обзоре появление этой книги объясняется тем, что "отличительной особенностью данной книги является то, что она в свой основе ориентирована на стандартную библиотеку шаблонов - в частности, на реализацию, предоставленную Hewlett-Packard". Книга представляет собой почти классический учебник по алгоритмам и структурам данных, причем неплохо написанный. Первые четыре главы - это введение, на основе которого излагается весь остальной материал. Особенно важны первые две. Первая содержит описание основных конструкций классов, а во второй излагаются важные свойства С++, без которых невозможно реализовать контейнеры: указатели и ссылки, массивы и динамическая память. Дается определение контейнера и итератора, объясняются принципы организации связанных структур типа списка, делается введение в обобщенные алгоритмы. Глава 3 не заслуживала бы упоминания, если бы в ней не было очень неплохого объяснения "большого О", применяемого для оценки производительности алгоритмов.

Ну, а с пятой главы фактически описывается организация контейнеров, итераторов и алгоритмов стандартной библиотеки, причем с некоторым углублением во "внутренности" реализации. В каждой главе обязательно есть довольно объемный пример применения. Например, в главе о векторах разрабатывается класс для работы с "длинными" числами, в главе о списках проектируется простой строчный редактор. Очереди и стеки применяются для моделирования мойки автомобилей и перевода в выражений в польскую запись соответственно. Ассоциативные контейнеры используются в задачах построения словаря синонимов и алфавитного указателя. Особенно мне понравился пример с применением приоритетной очереди: кодирование по Хаффмену. В тех главах, в которых излагаются структуры данных, не представленные в STL (например, глава 9 или глава 14), обязательно разрабатывается собственный класс.

Каждая глава, как и положено учебному пособию, содержит некоторое количество упражнений. Кроме того, автор утверждает, "в книге предусмотрено 29 лабораторных работ, описание которых содержится на web-сайте", и приводит адрес www.mhhe.com/collins (я еще проверить не успел - книжка только что вышла).

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

    Сообщений 14    Оценка 30        Оценить