Data structures allow organizing data efficiently. Their suitable
implementation can provide a complete solution that acts like reusable code.
In this book, you will learn how to use various data structures while
developing in the C# language as well as how to implement some of the most
common algorithms used with such data structures.
C# jest nowoczesnym i elastycznym językiem programowania. Aby w pełni
skorzystać z jego zalet, trzeba płynnie posługiwać się dostępnymi w nim
strukturami danych i algorytmami, pozwalają one bowiem na efektywnie
organizowanie danych i mają znaczący wpływ na wydajność aplikacji. Z punktu
widzenia programisty kluczowe jest ich właściwe zaimplementowanie: wybór
właściwej struktury danych i związanego z nią algorytmu stanowi o jakości
tworzonego kodu. Na przykład w celu wykonywania wysokowydajnych operacji na
zbiorach warto użyć zbioru haszowanego. Inne konstrukcje umożliwiają
rozwiązywanie kolejnych problemów.Dzięki tej książce nauczysz się używania
struktur danych i implementacji najważniejszych algorytmów w języku C#.
Najpierw zapoznasz się z najprostszymi strukturami danych o swobodnym dostępie
- z tablicami oraz listami. Wyjaśniono tu również działanie struktur danych o
dostępie sekwencyjnym, opartych na stosach i kolejkach. Przedstawiono
zastosowanie słowników, dzięki którym można mapować klucze na wartości i
prowadzić szybkie wyszukiwanie. Przystępnie opisano korzystanie z najbardziej
zaawansowanych konstrukcji, takich jak drzewo binarne, binarne drzewo
poszukiwań, drzewo samorównoważące się i kopiec. W końcowej części książki
znajdziesz ciekawą analizę stosowania grafów i związanych z nimi algorytmów,
takich jak przeszukiwanie grafu, minimalne drzewo rozpinające, kolorowanie
węzłów oraz znajdowanie najkrótszej ścieżki.Dr Marcin Jamro jest programistą i
architektem różnych aplikacji. Obecnie pełni funkcję prezesa firmy TITUTO Sp.
z o.o. z siedzibą w Rzeszowie. Ma również dorobek naukowy: jest autorem kilku
publikacji i organizatorem konferencji naukowych. Zdobył certyfikaty: MCP,
MCTS i MCPD. Szczególnie interesuje się inżynierią oprogramowania i
zarządzaniem projektami.