В этой книге подробно рассмотрены структуры данных и алгоритмы, которые являются фундаментом современной методологии разработки программ. Показаны разнообразные реализации абстрактных типов данных, начиная от стандартных списков, стеков, очередей и заканчивая множествами и отображениями, которые используются для неформального описания и реализации алгоритмов. Две главы книги посвящены методам анализа и построения алгоритмов; приведено и исследовано множество различных алгоритмов для работы с графами, внутренней и внешней сортировки, управления памятью. Книга не требует от читателя специальной подготовки, только предполагает его знакомство с какими-либо языками программирования высокого уровня, такими как Pascal. Вместе с тем она будет полезна специалистам по разработке программ и алгоритмов и может быть использована как учебное пособие для студентов и аспирантов, специализирующихся в области компьютерных наук.
Оглавление книги "Структуры данных и алгоритмы"
Предисловие 12
ГЛАВА 1. Построение и анализ алгоритмов 15
ГЛАВА 2. Основные абстрактные типы данных 45
ГЛАВА 3. Деревья 79
ГЛАВА 4. Основные операторы множеств 105
ГЛАВА 5. Специальные методы представления множеств 151
ГЛАВА 6. Ориентированные графы 189
ГЛАВА 7. Неориентированные графы 214
ГЛАВА 8. Сортировка 234
ГЛАВА 9. Методы анализа алгоритмов 272
ГЛАВА 10. Методы разработки алгоритмов 283
ГЛАВА 11. Структуры данных и алгоритмы для внешней памяти 318
ГЛАВА 12. Управление памятью 346
Список литературы 377
Предметный указатель 383
Для профессионала эта книга может служить настольным справочником, для преподавателя - пособием для подготовки к лекциям и источником интересных нетривиальных задач, для студентов и аспирантов - отличным учебником. Каждый может найти в ней именно тот материал, который касается интересующей его темы, и изложенный именно с тем уровне сложности и строгости, который требуется читателю.
Книга известного специалиста по программированию, в которой приведены основные сведения о языке Prolog, описан процесс разработки программ Prolog и показано применение языка Prolog во многих областях искусственного интеллекта, включая решение задач и эвристический поиск, программирование в ограничениях, представление знаний и экспертные системы, планирование, машинное обучение, качественные рассуждения, обработка текста на различных языках и ведение игр.