PHP 7 Algorytmy i struktury danych.pdf

(1517 KB) Pobierz
Tytuł oryginału: PHP 7 Data Structures and Algorithms
Tłumaczenie: Łukasz Suma
ISBN: 978-83-283-4085-5
Copyright © Packt Publishing 2017
First published in the English language under the title
„PHP 7 Data Structures and Algorithms - (9781786463890)”.
Polish edition copyright © 2018 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 Wydawnictwo HELION 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 Wydawnictwo HELION nie
ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji
zawartych w książce.
Wydawnictwo HELION
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/php7al
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
Wst p
Rozdzia 1. Wprowadzenie do algorytmów i struktur danych
Znaczenie algorytmów i struktur danych
Znaczenie abstrakcyjnych typów danych (ADT)
Ró ne struktury danych
Struktura
Tablica
Lista jednokierunkowa
Lista dwukierunkowa
Stos
Kolejka
Zbiór
Mapa (tablica asocjacyjna)
Drzewo
Graf
Sterta (kopiec)
Rozwi zywanie problemu — podej cie algorytmiczne
Pisanie pseudokodu
Przekszta canie pseudokodu w prawdziwy kod
Analiza algorytmu
Obliczanie z o ono ci
Zrozumienie notacji du ego O
Standardowa biblioteka PHP (SPL) i struktury danych
Podsumowanie
15
19
20
23
24
25
25
26
26
27
27
28
28
28
29
29
30
31
32
33
34
35
37
38
Rozdzia 2. Zrozumienie tablic PHP
Zrozumienie tablic PHP w lepszy sposób
Tablica liczbowa
Tablica asocjacyjna
Tablica wielowymiarowa
39
39
41
42
43
Kup książkę
Poleć książkę
Spis tre ci
U ywanie tablicy jako elastycznego sposobu przechowywania danych
U ywanie wielowymiarowych tablic do reprezentowania struktur danych
Tworzenie tablic o sta ym rozmiarze za pomoc klasy SplFixedArray
Porównanie wydajno ci zwyk ych tablic PHP oraz tablic SplFixedArray
Wi cej przyk adów zastosowania tablicy SplFixedArray
Zrozumienie tablic mieszaj cych
Implementacja struktury przy u yciu tablicy PHP
Implementacja zbioru przy u yciu tablicy PHP
Najlepsze zastosowanie tablicy PHP
Czy tablica PHP jest zabójc wydajno ci?
Podsumowanie
44
45
47
48
51
53
54
55
57
57
58
Rozdzia 3. U ywanie list
Czym jest lista?
Ró ne typy list
Lista dwukierunkowa
Lista cykliczna
Lista wielokierunkowa
Wstawianie, usuwanie i wyszukiwanie elementu
Wstawianie w z a na pierwszej pozycji
Wyszukiwanie w z a
Wstawianie przed okre lonym w z em
Wstawianie po okre lonym w le
Usuwanie pierwszego w z a
Usuwanie ostatniego w z a
Wyszukiwanie i usuwanie jednego w z a
Odwracanie listy
Pobieranie elementu z n-tej pozycji
Zrozumienie z o ono ci list
Sprawianie, aby lista by a iterowalna
Budowanie listy cyklicznej
Implementacja listy dwukierunkowej w PHP
Operacje na li cie dwukierunkowej
Wstawianie w z a na pierwszej pozycji
Wstawianie w z a na ostatniej pozycji
Wstawianie przed okre lonym w z em
Wstawianie po okre lonym w le
Usuwanie pierwszego w z a
Usuwanie ostatniego w z a
Wyszukiwanie i usuwanie jednego w z a
Wy wietlanie listy od pocz tku do ko ca
Wy wietlanie listy od ko ca do pocz tku
Z o ono list dwukierunkowych
U ywanie obiektów klasy PHP SplDoublyLinkedList
Podsumowanie
59
59
63
63
63
64
64
65
65
66
67
67
68
69
69
70
71
72
73
75
75
76
76
77
78
78
79
79
80
80
80
81
82
6
Kup książkę
Poleć książkę
Spis tre ci
Rozdzia 4. Konstruowanie stosów i kolejek
Zrozumienie stosu
Implementacja stosu za pomoc tablicy PHP
Zrozumienie z o ono ci operacji na stosie
Implementacja stosu za pomoc listy
U ywanie klasy SplStack nale cej do SPL
Rzeczywiste zastosowanie stosu
Dopasowywanie zagnie d onych nawiasów
Zrozumienie kolejki
Implementacja kolejki za pomoc tablicy PHP
Implementacja kolejki za pomoc listy
U ywanie klasy SplQueue nale cej do SPL
Zrozumienie kolejki priorytetowej
Sekwencja uporz dkowana
Sekwencja nieuporz dkowana
Implementacja kolejki priorytetowej za pomoc listy
Implementacja kolejki priorytetowej za pomoc klasy SplPriorityQueue
Implementacja kolejki cyklicznej
Tworzenie kolejki dwustronnej
Podsumowanie
83
83
84
87
88
90
90
91
93
94
95
96
96
97
97
97
99
100
102
105
Rozdzia 5. Stosowanie algorytmów rekurencyjnych
Zrozumienie rekurencji
W a ciwo ci algorytmów rekurencyjnych
Algorytmy rekurencyjne kontra algorytmy iteracyjne
Implementacja ci gu Fibonacciego za pomoc rekurencji
Implementacja obliczania NWD za pomoc rekurencji
Ró ne rodzaje rekurencji
Rekurencja liniowa
Rekurencja binarna
Rekurencja ogonowa
Rekurencja wzajemna
Rekurencja zagnie d ona
Budowanie N-poziomowego drzewa kategorii za pomoc rekurencji
Budowanie systemu zagnie d onych odpowiedzi na komentarze
Wyszukiwanie plików i katalogów za pomoc rekurencji
Analizowanie algorytmów rekurencyjnych
Maksymalna g boko rekurencji w PHP
U ywanie rekurencyjnych iteratorów SPL
U ywanie wbudowanej funkcji PHP array_walk_recursive
Podsumowanie
107
108
109
110
111
111
112
112
112
112
113
113
114
116
120
122
123
124
125
126
7
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin