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

XVI Содержание

2.2 Наследование и полиморфизм.......

.

.

.

.

.

.

.

.

.

.

71

2.2.1 Наследование в C ++...........

.

.

.

.

.

.

.

.

.

.

71

2.2.2 Полиморфизм.............

.

.

.

.

.

.

.

.

.

.

78

2.2.3 Примеры наследования в C ++....

.

.

.

.

.

.

.

.

.

.

79

2.2.4 Многократный кастинг наследования и класса

.

.

.

.

.

.

.

.

.

.

84

2.2.5 Интерфейсы и абстрактные классы....

.

.

.

.

.

.

.

.

.

.

87

2.3 Шаблоны...................

.

.

.

.

.

.

.

.

.

.

90

2.3.1 Шаблоны функции..........

.

.

.

.

.

.

.

.

.

.

90

2.3.2 Шаблоны класса............

.

.

.

.

.

.

.

.

.

.

91

2.4 Исключения..................

.

.

.

.

.

.

.

.

.

.

93

2.4.1 Объекты исключения...........

.

.

.

.

.

.

.

.

.

.

93

2.4.2 Бросок и ловля исключений..

.

.

.

.

.

.

.

.

.

.

94

2.4.3 Спецификация исключения........

.

.

.

.

.

.

.

.

.

.

96

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

.

.

.

.

.

.

.

.

.

.

98

3 множества, связанные списки и рекурсия

103

3.1 Используя множества......................

.

.

.

.

.

104

3.1.1 Хранение записей игры во множестве........

.

.

.

.

.

104

3.1.2 Сортировка множества.................

.

.

.

.

.

109

3.1.3 Двумерные множества и позиционные игры

.

.

.

.

.

111

3.2 Отдельно связанные списки...................

.

.

.

.

.

117

3.2.1 Осуществление отдельно связанного списка.......

.

.

.

.

.

117

3.2.2 Вставка к фронту отдельно связанного списка.

.

.

.

.

.

119

3.2.3 Удаление из фронта отдельно связанного списка

.

.

.

.

.

119

3.2.4 Осуществление универсального отдельно связанного списка...

.

.

.

.

.

121

3.3 Вдвойне связанные списки..................

.

.

.

.

.

123

3.3.1 Вставка во вдвойне связанный список.......

.

.

.

.

.

123

3.3.2 Удаление из вдвойне связанного списка......

.

.

.

.

.

124

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

.

.

.

.

.

125

3.4 Циркулярные связанные списки и аннулирование списка......

.

.

.

.

.

129

3.4.1 Циркулярные связанные списки..............

.

.

.

.

.

129

3.4.2 Изменение связанного списка.............

.

.

.

.

.

133

3.5 Рекурсия........................

.

.

.

.

.

134

3.5.1 Линейная рекурсия.................

.

.

.

.

.

140

3.5.2 Двойная рекурсия................

.

.

.

.

.

144

3.5.3 Многократная рекурсия...............

.

.

.

.

.

147

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

.

.

.

.

.

149

4 аналитических инструмента

153

4.1 Семь функций, используемых в этой книге........... 154

4.1.1 Постоянная функция.................. 154 4.1.2 функция логарифма................. 154

Содержание

xvii

4.1.3 Линейная функция..............

.

.

.

.

.

.

156

4.1.4 Функция N-Log-N............

.

.

.

.

.

.

156

4.1.5 Квадратная функция............

.

.

.

.

.

.

156

4.1.6 Кубическая функция и другие полиномиалы.

.

.

.

.

.

.

158

4.1.7 Показательная функция...........

.

.

.

.

.

.

159

4.1.8 Сравнение темпов роста...........

.

.

.

.

.

.

161

4.2 Анализ алгоритмов...............

.

.

.

.

.

.

162

4.2.1 Экспериментальные исследования.............

.

.

.

.

.

.

163

4.2.2 Примитивные операции.............

.

.

.

.

.

.

164

4.2.3 Асимптотическое примечание.............

.

.

.

.

.

.

166

4.2.4 Асимптотический анализ..............

.

.

.

.

.

.

170

4.2.5 Используя большое о примечание..........

.

.

.

.

.

.

172

4.2.6 Рекурсивный алгоритм для вычислительных мощностей

.

.

.

.

.

.

176

4.2.7 Еще некоторые примеры анализа алгоритма.

.

.

.

.

.

.

177

4.3 Простые методы оправдания..........

.

.

.

.

.

.

181

4.3.1 Примером..................

.

.

.

.

.

.

181

4.3.2 Нападение «мятежника».............

.

.

.

.

.

.

181

4.3.3 Индукция и инварианты петли........

.

.

.

.

.

.

182

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

.

.

.

.

.

.

185

5 стеков, очереди и Deques

193

5.1 Стеки............................

.

.

.

194

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

.

.

.

195

5.1.2 Стек STL...................

.

.

.

196

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

.

.

.

196

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

.

.

.

198

5.1.5 Осуществление стека с универсальным связанным списком.

.

.

.

202

5.1.6 Изменение вектора Используя стек..........

.

.

.

203

5.1.7 Соответствие круглым скобкам и HTML-ТЭГАМ......

.

.

.

204

5.2 Очереди...........................

.

.

.

208

5.2.1 Тип данных резюме очереди..........

.

.

.

208

5.2.2 Очередь STL...................

.

.

.

209

5.2.3 C ++ интерфейс очереди...............

.

.

.

210

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

.

.

.

211

5.2.5 Осуществление очереди с циркулярным связанным списком

.

.

.

213

5.3 Симметричные очереди...................

.

.

.

217

5.3.1 Абстрактный тип данных Deque..........

.

.

.

217

5.3.2 STL Deque...................

.

.

.

218

5.3.3 Осуществление Deque с вдвойне связанным списком.

.

.

.

218

5.3.4 Адаптеры и шаблон адаптера.....

.

.

.

220

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

.

.

.

223