C_Struktury_danych_i_algorytmy_cppstr.pdf

(2321 KB) Pobierz
Tytuł oryginału: C++ Data Structures and Algorithms
Tłumaczenie: Maksymilian Gutowski
ISBN: 978-83-283-5185-1
Copyright © Packt Publishing 2018. First published in the English language
under the title ‘C++ Data Structures and Algorithms – (9781788835213)’
Polish edition copyright © 2019 by Helion SA
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Helion SA
ul. Kościuszki 1c, 44-100 Gliwice
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/cppstr
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis tre ci
O autorze
O recenzencie
Wst p
Rozdzia 1. Struktury danych i algorytmy w C++
Wymagania techniczne
Podstawy C++
Pierwszy kod w C++
Usprawnianie pracy nad kodem przy u yciu IDE
Definiowanie zmiennych przy u yciu podstawowych typów danych
Sterowanie przep ywem kodu
Wykorzystanie zmiennych za po rednictwem zaawansowanych typów danych
Tworzenie abstrakcyjnych typów danych
Wykorzystanie klas C++ przy tworzeniu ADT zdefiniowanych przez u ytkownika
Pos ugiwanie si szablonami
Analiza algorytmów
Analiza asymptotyczna
Najgorsze, rednie i najlepsze przypadki
Notacja , i
Metoda rekurencyjna
Analiza kosztu zamortyzowanego
Podsumowanie
Pytania
Dodatkowe materia y
9
10
11
15
15
16
16
17
19
20
28
33
33
39
44
44
47
48
49
49
50
50
50
Kup książkę
Poleć książkę
Spis tre ci
Rozdzia 2. Przechowywanie danych w listach i listach wi zanych
Wymagania techniczne
Tablice
Tworzenie ADT listy
Zwracanie elementu z listy
Wstawianie elementu do listy
Wyszukiwanie indeksu wybranego elementu w li cie
Usuwanie elementu z listy
Implementacja listy
Wprowadzenie do w z ów
Tworzenie ADT listy jednokierunkowej
Zwracanie elementu z listy wi zanej
Wstawianie elementu do listy wi zanej
Wyszukiwanie indeksu wybranego elementu w li cie wi zanej
Usuwanie elementu z listy wi zanej
Implementacja listy wi zanej
Tworzenie ADT listy dwukierunkowej
Refaktoryzacja typu danych Node<T>
Refaktoryzacja kilku operacji LinkedList
Implementacja ADT listy dwukierunkowej
Wykorzystanie typów List i LinkedList przy u yciu STL
std::vector
std::list
Podsumowanie
Pytania
Dodatkowe materia y
51
51
52
55
56
57
58
58
59
61
65
66
67
69
70
73
75
76
76
81
83
83
85
88
88
88
Rozdzia 3. Tworzenie stosów i kolejek
Wymagania techniczne
Tworzenie ADT stosu
Pobieranie warto ci elementu z ADT stosu
Umieszczanie elementów na ADT stosu
Usuwanie elementów z ADT stosu
Implementacja ADT stosu
Tworzenie ADT kolejki jednokierunkowej
Pobieranie warto ci elementu z ADT kolejki
Wstawianie elementu do ADT kolejki
Usuwanie elementu z ADT kolejki
Implementacja ADT kolejki
Tworzenie ADT kolejki dwukierunkowej
Pobieranie warto ci elementu z ADT kolejki dwukierunkowej
Dodawanie elementu do ADT kolejki dwukierunkowej
Usuwanie elementu z ADT kolejki dwukierunkowej
Implementacja ADT kolejki dwukierunkowej
Podsumowanie
Pytania
Dodatkowe materia y
91
91
92
93
93
94
95
99
100
100
101
102
103
104
104
106
107
108
109
109
4
Kup książkę
Poleć książkę
Spis tre ci
Rozdzia 4. Porz dkowanie elementów przy u yciu algorytmów sortowania
Wymagania techniczne
Sortowanie b belkowe
Sortowanie przez wybieranie
Sortowanie przez wstawianie
Sortowanie przez scalanie
Sortowanie szybkie
Sortowanie przez zliczanie
Sortowanie pozycyjne
Podsumowanie
Pytania
Dodatkowe materia y
111
111
112
114
118
122
128
133
136
140
140
141
Rozdzia 5. Wyszukiwanie elementów przy u yciu algorytmów wyszukiwania
Wymagania techniczne
Wyszukiwanie liniowe
Opracowanie algorytmu wyszukiwania liniowego
Implementacja algorytmu wyszukiwania liniowego
Wyszukiwanie binarne
Opracowanie algorytmu wyszukiwania binarnego
Implementacja algorytmu wyszukiwania binarnego
Wyszukiwanie ternarne
Opracowanie algorytmu wyszukiwania ternarnego
Zastosowanie algorytmu wyszukiwania ternarnego
Wyszukiwanie interpolacyjne
Opracowanie algorytmu wyszukiwania interpolacyjnego
Zastosowanie algorytmu wyszukiwania interpolacyjnego
Wyszukiwanie skokowe
Opracowanie algorytmu wyszukiwania skokowego
Zastosowanie algorytmu wyszukiwania skokowego
Wyszukiwanie wyk adnicze
Opracowanie algorytmu wyszukiwania wyk adniczego
Wywo anie funkcji ExponentialSearch()
Wyszukiwanie podlisty
Opracowanie algorytmu wyszukiwania podlisty
Wykorzystanie algorytmu wyszukiwania podlisty
Podsumowanie
Pytania
Dodatkowe materia y
143
144
144
144
145
146
146
147
148
149
150
151
151
153
154
154
155
156
156
157
158
159
160
162
162
163
Rozdzia 6. U ywanie znakowego typu danych
Wymagania techniczne
Ci g znakowy C++
Tworzenie ci gu znaków przy u yciu tablicy znaków
Dodatkowe funkcje std::string
Zabawa s owami
Tworzenie anagramów
Wykrywanie palindromów
165
165
166
166
166
167
167
169
5
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin