E-book details

Struktury danych i algorytmy w języku C#. Projektowanie efektywnych aplikacji

Struktury danych i algorytmy w języku C#. Projektowanie efektywnych aplikacji

Marcin Jamro

Ebook

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.

Najciekawsze zagadnienia ujęte w książce:

  • różne typy danych w C#: wartościowe i referencyjne
  • tablice i listy oraz algorytmy sortowania
  • operacje na zbiorach oraz wbudowany typ HashSet
  • struktury drzewiaste i kopce: binarne, dwumianowe oraz Fibonacciego
  • algorytmy oparte na grafach, w tym algorytm Dijkstry

C#. Liczy się algorytm i odpowiednia struktura danych!

  • O autorze
  • O recenzencie
  • Wstęp
    • Dla kogo jest ta książka?
    • Co obejmuje ta książka?
    • Co jest potrzebne, by jak najlepiej skorzystać z tej książki?
      • Przykłady kodu do pobrania
      • Kolorowe wersje rysunków do pobrania
      • Stosowane konwencje
  • Rozdział 1. Wprowadzenie
    • Język programowania
    • Typy danych
      • Typy wartościowe
        • Struktury
        • Wyliczenia
      • Typy referencyjne
        • Ciągi
        • Klasa Object
        • Typ dynamic
        • Klasy
        • Interfejsy
        • Delegaty
    • Instalacja i konfiguracja środowiska IDE
    • Tworzenie projektu
    • Wejście i wyjście
      • Odczytywanie z wejścia
      • Zapisywanie do wyjścia
    • Uruchamianie i debugowanie
    • Podsumowanie
  • Rozdział 2. Tablice i listy
    • Tablice
      • Tablice jednowymiarowe
        • Przykład nazwy miesięcy
      • Tablice wielowymiarowe
        • Przykład tabliczka mnożenia
        • Przykład mapa gry
      • Tablice nieregularne
        • Przykład roczny plan transportu
    • Algorytmy sortowania
      • Sortowanie przez wybieranie
      • Sortowanie przez wstawianie
      • Sortowanie bąbelkowe
      • Sortowanie szybkie
    • Proste listy
      • Lista tablicowa
      • Lista generyczna
      • Przykład średnia wartość
      • Przykład lista osób
    • Listy uporządkowane
      • Przykład książka adresowa
    • Listy wiązane
      • Przykład czytnik książki
    • Listy cykliczne
      • Implementacja
      • Przykład zakręć kołem
    • Podsumowanie
  • Rozdział 3. Stosy i kolejki
    • Stosy
      • Przykład odwracanie wyrazów
      • Przykład Wieże Hanoi
    • Kolejki
      • Przykład telefoniczne biuro obsługi klienta z jednym konsultantem
      • Przykład telefoniczne biuro obsługi klienta z wieloma konsultantami
    • Kolejki priorytetowe
      • Przykład biuro telefonicznej obsługi klienta ze wsparciem priorytetowym
    • Podsumowanie
  • Rozdział 4. Słowniki i zbiory
    • Tablice z haszowaniem
      • Przykład książka telefoniczna
    • Słowniki
      • Przykład wyszukiwanie produktu
      • Przykład dane użytkownika
    • Słowniki uporządkowane
      • Przykład definicje
    • Zbiory haszowane
      • Przykład kupony
      • Przykład baseny
    • Zbiory uporządkowane
      • Przykład usuwanie duplikatów
    • Podsumowanie
  • Rozdział 5. Warianty drzew
    • Zwykłe drzewa
      • Implementacja
        • Węzeł
        • Drzewo
      • Przykład hierarchia identyfikatorów
      • Przykład struktura przedsiębiorstwa
    • Drzewa binarne
      • Implementacja
        • Węzeł
        • Drzewo
      • Przykład prosty quiz
    • Binarne drzewa poszukiwań
      • Implementacja
        • Węzeł
        • Drzewo
        • Wyszukiwanie
        • Wstawianie
        • Usuwanie
      • Przykład wizualizacja drzewa BST
    • Drzewa AVL
      • Implementacja
      • Przykład utrzymuj zrównoważenie drzewa
    • Drzewa czerwono-czarne
      • Implementacja
      • Przykład funkcje drzew RBT
    • Kopce binarne
      • Implementacja
      • Przykład sortowanie przez kopcowanie
    • Kopce dwumianowe
    • Kopce Fibonacciego
    • Podsumowanie
  • Rozdział 6. Odkrywanie grafów
    • Koncepcja grafów
    • Zastosowania
    • Reprezentacja
      • Lista sąsiedztwa
      • Macierz sąsiedztwa
    • Implementacja
      • Węzeł
      • Krawędź
      • Graf
      • Przykład krawędzie nieskierowane i nieważone
      • Przykład krawędzie skierowane i ważone
    • Przeszukiwanie
      • Przeszukiwanie w głąb
      • Przeszukiwanie wszerz
    • Minimalne drzewo rozpinające
      • Algorytm Kruskala
      • Algorytm Prima
      • Przykład kabel telekomunikacyjny
    • Kolorowanie
      • Przykład mapa województw
    • Najkrótsza ścieżka
      • Przykład mapa gry
    • Podsumowanie
  • Rozdział 7. Podsumowanie
    • Klasyfikacja struktur danych
    • Różnorodność zastosowań struktur danych
      • Tablice
      • Listy
      • Stosy
      • Kolejki
      • Słowniki
      • Zbiory
      • Drzewa
      • Kopce
      • Grafy
    • Słowo końcowe
  • Title: Struktury danych i algorytmy w języku C#. Projektowanie efektywnych aplikacji
  • Author: Marcin Jamro
  • Original title: C# Data Structures and Algorithms: Explore the possibilities of C# for developing a variety of efficient applications
  • Translation: Krzysztof Bąbol
  • ISBN: 978-83-283-5050-2, 9788328350502
  • Date of issue: 2019-02-11
  • Format: Ebook
  • Item ID: strdan
  • Publisher: Helion