Книга является репринтным изданием `C/C++. Архив программ`. В ней представлен код работоспособных программ на C/C++, относящихся к самым разнообразным областям и аспектам написания приложений - от работы с достаточно простыми структурами данных (списки, деревья) до построения синтаксических анализаторов и интерпретаторов, доступа к Internet и т. п. Программный код может использоваться в ваших программах без изменений или в модифицированном и усовершенствованном виде. Чрезвычайно полезно также его изучение в целях освоения главнейших принципов, алгоритмов и приемов решения разных задач. Программы снабжены развернутыми комментариями и детальными пояснениями их работы. Для широкого круга программистов, пишущих на явыках C/C++.
Краткое содержание
Предисловие
Глава 1. Сортировка
Введение в сортировку
Пузырьковая сортировка
Выборочная сортировка
Базовая быстрая сортировка
Улучшенная быстрая сортировка
Сортировка слиянием
Глава 2. Связанные списки
Введение в связанные списки
Односвязные списки
Простой односвязный список
Шаблон односвязного списка
Двусвязные списки
Простой двусвязный список
Шаблон двусвязного списка
Глава 3. Двоичные деревья
Введение в двоичные деревья
Двоичные деревья поиска
Простой шаблон двоичного дерева поиска
Сбалансированное двоичное дерево поиска
Глава 4. Смешанные таблицы и разреженные массивы
Введение в смешанные таблицы и разреженные массивы
Проектирование смешанной таблицы
Простая смешанная таблица с целыми ключами
Смешанная таблица с ключами типа char
Проектирование разреженного массива
Одномерный разреженный массив
Двумерный разреженный массив
Глава 5. Управление памятью
Управление памятью в С и C++
Перегрузка глобальной операции new
Простой аллокатор, основанный на массиве
Простой аллокатор, основанный на списке
Глава 6. Работа с файлами и каталогами
Поиск и замена в текстовом файле
Работа с файловой системой
Просмотр содержимого файла
Глава 7. Основы шифровки
Что такое шифровка
Усиление защиты шифра
Более сложный алгоритм шифровки
Ограниченность традиционных систем шифровки с одним ключом
Глава 8. Управление исходным кодом
Проектирование программы управления кодом
Классы лексем
Класс сканера CScanner
Инициализация сканера для C++
Класс синтаксического разбора CCodeParser
Главная программа
Компиляция SCodeMnt.exe
Глава 9. C/C++ в Internet
Службы Internet
WinSock API
Инициализация WinSock
Служба имен
Вопросы, касающиеся порядка байтов
Коммуникация через сокеты
Проблема блокировки и вызов select()
Асинхронные вызовы сокетов
Синхронные операции и сериализация
Глава 10. Финансовые расчеты
Вычисление амортизации
Линейная амортизация
Амортизация по сумме цифр лет
Код программы для амортизации по сумме цифр лет
Амортизация по балансу с двойным наклоном
Функции, связанные с рентой
Глава 11. Статистические расчеты
Введение в средние значения
Среднее арифметическое, медиана и модус
Другие распространенные виды средних
Среднее взвешенное
Среднее геометрическое
Регрессионный анализ
Глава 12. Создание фракталов
Введение во фракталы
Краткое замечание о графиках
Обзор архитектуры документ/вид
Глава 13. Объектно-ориентированный анализатор выражений
Основы синтаксического анализа
Выражения
Анализ выражений: проблема
Синтаксический анализ выражения
Разбиение выражения на лексемы
Простой анализатор выражений
Анализатор, воспринимающий переменные
Глава 14. Реализация языковых интерпретаторов на C++
Анализатор выражений Small BASIC
Выражения Small BASIC
Лексемы языка Small BASIC
Интерпретатор языка Small BASIC
Ключевые слова
Загрузка программы
Главный цикл
Глава 15. Исследование библиотеки стандартных шаблонов
Обзор библиотеки стандартных шаблонов
Контейнеры
Итераторы
Алгоритмы
Глава 16. C/C++ в разработках CGI
Архитектура CGI
FTP и HTTP: сохранение статуса
Эффективность коммуникации без сохранения статуса
Четыре шага транзакции HTTP
Использование приложений CGI
Взаимодействие сервера с программой CGI
Обращение из обозревателя к программе CGI