Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

XVIII Содержание

6 списков и Iterator ADTs 227

6.1 Векторы.........................

...

.

.

228

6.1.1 Векторный тип данных резюме........

...

.

.

228

6.1.2 Простое основанное на множестве внедрение.....

...

.

.

229

6.1.3 Растяжимое внедрение множества......

...

.

.

231

6.1.4 Векторы STL...................

...

.

.

236

6.2 Списки...........................

...

.

.

238

6.2.1 Основанный на узле Operations и Iterators......

...

.

.

238

6.2.2 Тип данных резюме списка..........

...

.

.

240

6.2.3 Вдвойне связанное внедрение списка.......

...

.

.

242

6.2.4 Списки STL....................

...

.

.

247

6.2.5 STL Containers и Iterators..........

...

.

.

248

6.3 Последовательности........................

...

.

.

255

6.3.1 Тип данных резюме последовательности.......

...

.

.

255

6.3.2 Осуществление последовательности с вдвойне связанным

Список

.

.

255

6.3.3 Осуществление последовательности со множеством....

...

.

.

257

6.4 Тематическое исследование: вид пузыря на последовательности......

...

.

.

259

6.4.1 Алгоритм вида пузыря...........

...

.

.

259

6.4.2 Основанный на последовательности анализ вида пузыря...

...

.

.

260

6.5 Упражнения........................

...

.

.

262

7 Деревьев

267

7.1 Общие деревья.....................

.

.

.

.

.

.

268

7.1.1 Определения дерева и свойства........

.

.

.

.

.

.

269

7.1.2 Функции дерева.................

.

.

.

.

.

.

272

7.1.3 C ++ интерфейс дерева.............

.

.

.

.

.

.

273

7.1.4 Связанная структура для общих деревьев.....

.

.

.

.

.

.

274

7.2 Алгоритмы пересечения дерева.............

.

.

.

.

.

.

275

7.2.1 Глубина и высота...............

.

.

.

.

.

.

275

7.2.2 Пересечение перед заказом...............

.

.

.

.

.

.

278

7.2.3 Пересечение постзаказа..............

.

.

.

.

.

.

281

7.3 Двоичные деревья.....................

.

.

.

.

.

.

284

7.3.1 Двоичное дерево ADT.............

.

.

.

.

.

.

285

7.3.2 C ++ интерфейс двоичного дерева.........

.

.

.

.

.

.

286

7.3.3 Свойства двоичных деревьев..........

.

.

.

.

.

.

287

7.3.4 Связанная структура для двоичных деревьев.....

.

.

.

.

.

.

289

7.3.5 Основанная на векторе структура для двоичных деревьев..

.

.

.

.

.

.

295

7.3.6 Пересечения двоичного дерева..........

.

.

.

.

.

.

297

7.3.7 Образец функции шаблона.......

.

.

.

.

.

.

303

7.3.8 Представление общих деревьев с двоичными деревьями

.

.

.

.

.

.

309

7.4 Упражнения.......................

.

.

.

.

.

.

310

Содержание

xix

8 куч и приоритетные очереди

321

8.1 Приоритетный тип данных резюме очереди........

.

.

.

322

8.1.1 Ключи, приоритеты и общее количество заказывают отношения.....

.

.

.

322

8.1.2 Компараторы.....................

.

.

.

324

8.1.3 Приоритетная очередь ADT..............

.

.

.

327

8.1.4 C ++ приоритетный интерфейс очереди...........

.

.

.

328

8.1.5 Сортировка с приоритетной очередью............

.

.

.

329

8.1.6 Приоритетный Класс очереди STL............

.

.

.

330

8.2 Осуществление приоритетной очереди со списком.......

.

.

.

331

8.2.1 C ++ Приоритетное Внедрение Очереди, используя Список

.

.

.

333

8.2.2 Вид выбора и вид вставки..........

.

.

.

335

8.3 Кучи............................

.

.

.

337

8.3.1 Структура данных кучи..............

.

.

.

337

8.3.2 Полные двоичные деревья и их представление.

.

.

.

340

8.3.3 Осуществление приоритетной очереди с кучей....

.

.

.

344

8.3.4 C ++ внедрение................

.

.

.

349

8.3.5 Вид кучи......................

.

.

.

351

8.3.6 Восходящее строительство кучи ..........

.

.

.

353

8.4 Приспосабливаемые приоритетные очереди................

.

.

.

357

8.4.1 Основанное на списке внедрение............

.

.

.

358

8.4.2 Осведомленные о местоположении записи...............

.

.

.

360

8.5 Упражнения..........................

.

.

.

361

9 хеш-таблиц, карты и списки пропуска

367

9.1 Карты.......................

.

.

.

.

.

.

.

.

368

9.1.1 Карта ADT..............

.

.

.

.

.

.

.

.

369

9.1.2 C ++ интерфейс карты...........

.

.

.

.

.

.

.

.

371

9.1.3 STL наносят на карту Класс............

.

.

.

.

.

.

.

.

372

9.1.4 Простое основанное на списке внедрение карты

.

.

.

.

.

.

.

.

374

9.2 Хеш-таблицы...................

.

.

.

.

.

.

.

.

375

9.2.1 Множества ведра...............

.

.

.

.

.

.

.

.

375

9.2.2 Функции мешанины..............

.

.

.

.

.

.

.

.

376

9.2.3 Кодексы мешанины................

.

.

.

.

.

.

.

.

376

9.2.4 Функции сжатия..........

.

.

.

.

.

.

.

.

380

9.2.5 Обращающиеся со столкновением схемы........

.

.

.

.

.

.

.

.

382

9.2.6 Коэффициенты нагрузки и перефразирование.......

.

.

.

.

.

.

.

.

386

9.2.7 C ++ внедрение хеш-таблицы....

.

.

.

.

.

.

.

.

387

9.3 Заказанные карты..................

.

.

.

.

.

.

.

.

394

9.3.1 Заказанные столы поиска и двоичный поиск

.

.

.

.

.

.

.

.

395

9.3.2 Два применения заказанных карт....

.

.

.

.

.

.

.

.

399

9.4 Пропустите списки.....................

.

.

.

.

.

.

.

.

402