Struktura danych to jedna z najważniejszych koncepcji w świecie programowania, która odgrywa wpływową rolę w powodzeniu aplikacji.
Wszystkie aplikacje korzystające ze struktur danych implementują je na różne sposoby. Temat struktury danych jest tak istotny, że wszystkie główne uniwersytety na świecie opracowały specjalne rozdziały poświęcone nauczaniu tej koncepcji.
Co ciekawe, czołowe instytucje edukacyjne opracowały także dedykowane filmy wideo dotyczące pracy ze strukturami danych w różnych językach programowania. Wszyscy odnoszący sukcesy programiści znają tę koncepcję w świecie programowania w języku Java.
Dlatego jeśli planujesz wejść w świat programowania w Javie, powinieneś poświęcić dużo czasu na naukę struktur danych.
Co to jest struktura danych w Javie i dlaczego jej potrzebujemy?
Struktura danych odnosi się do różnych metod przechowywania danych w systemach komputerowych. Struktury danych to narzędzia do efektywnego zarządzania dużymi ilościami danych, tak aby można było uzyskać do nich optymalny dostęp i je edytować. Struktury danych pomagają pisać algorytmy o mniejszej złożoności czasowej i lepszej kolejności wykonywania.
Pisząc optymalny algorytm, musimy zwrócić uwagę na kryteria zużycia pamięci i czasu, aby wydajność pracy była akceptowalna. Z tego powodu musimy mieć pełne informacje na temat różnych typów struktury danych.
Struktury danych W języki programowania Jak na przykład Jawa są wydajnym narzędziem do zarządzania dużymi ilościami danych i są wykorzystywane w prawie wszystkich dużych aplikacjach, takich jak systemy operacyjne, aplikacje sztucznej inteligencji, projektowanie kompilatorów itp.
Obecnie aplikacje połączone są z dużą ilością danych, co podwoiło złożoność tych aplikacji i stworzyło wiele wyzwań dla aplikacji i programistów, z których najważniejsze to:
- Szybkość przetwarzania: wraz ze wzrostem ilości danych musi także wzrosnąć szybkość zarządzania i przetwarzania. Dzisiejsze procesory mogą przetwarzać duże ilości danych w krótkim czasie i aby osiągnąć taki cel, muszą pisać wydajne algorytmy.
- Wyszukiwanie danych: Wyobraź sobie sklep internetowy, który ma ponad 200 000 produktów. Jeśli program zamierza wyszukać konkretny produkt na podstawie określonych warunków, musi sprawdzić specyfikacje 200 000 produktów, aby zwrócić wynik. Spowolni to wyszukiwanie.
- Wiele żądań jednocześnie: Wyobraź sobie, że miliony użytkowników jednocześnie szukają danych na serwerze internetowym; to naturalne, że wzrasta prawdopodobieństwo problemów z serwerem.
Aby rozwiązać powyższe problemy, programiści używają struktury danych W programowanie języki takie jak Jawa. W strukturę danych Javadane są przechowywane i zarządzane w taki sposób, aby podczas wyszukiwania można było uzyskać do nich dostęp w jak najkrótszym czasie.
Jaka jest zaleta struktur danych w Javie?
Jak wspomnieliśmy, używając struktury danych pomaga lepiej zarządzać danymi i rozwiązać część problemów wymienionych w poprzednim akapicie. Jednakże, Programiści Java używają struktur danych w Javie z następujących powodów:
- Efektywność: Struktura danych w Javie znacząco poprawiają wydajność aplikacji poprzez strukturyzację danych, gdyż pozwalają na przechowywanie danych na najmniejszej możliwej przestrzeni i przetwarzanie ich z dużą szybkością.
- Ponowne wykorzystanie: Możliwość ponownego wykorzystania danych jest jednym z najważniejszych powodów ich wykorzystania struktury danych. Po zaimplementowaniu określonej struktury danych można ją wykorzystać w różnych częściach aplikacji. Dodatkowo możliwe jest definiowanie struktury danych w bibliotekach i wykorzystywanie jej na różne sposoby w innych aplikacjach.
- Abstrakcja: w Jawaabstrakcyjny typ danych ADT służy do określenia struktury danych. We wspomnianej metodzie programiści mogą skorzystać strukturę danych W Jawa za pomocą interfejsów (Interfejs) w aplikacjach bez wchodzenia w szczegóły implementacji struktury danych bez powodu. Abstrakcyjny typ danych zapewnia najwyższy poziom ukrywania szczegółów.
Klasyfikacja struktur danych w Javie
Ogólnie, struktury danych w Programowanie w Javie języki dzielą się na liniowe i nieliniowy struktury danych, które niektóre źródła nazywają hierarchicznymi strukturami danych. Mają swoje podkategorie. Rysunek 1 przedstawia powyższą klasyfikację.
rysunek 1
- Liniowe struktury danych: Wszystkie elementy są ułożone liniowo lub sekwencyjnie w liniowej strukturze danych. Liniowa struktura danych to jednopoziomowa struktura danych (Single Level Data Structure), w której elementy są ułożone sekwencyjnie.
- Nieliniowe struktury danych: W nieliniowej strukturze danych dane nie są uporządkowane i przechowywane sekwencyjnie jak liniowe struktury danych. Z tego powodu nieliniowe struktury danych są wielopoziomowymi strukturami danych.
Rodzaje struktur danych w Javie
Podstawowe struktury danych W język programowania Java są następujące:
- Tablice
- Połączone listy
- Stos
- Kolejka
- Wykres
- Ustawić
Tablicowa struktura danych w Javie
Tablica jest liniową i statyczną strukturą danych reprezentującą grupę podobnych elementów, do których mają dostęp indeksy. Pierwszy adres odmiany należy do pierwszego elementu, a ostatni adres należy do ostatniej części kolekcji. Zazwyczaj wielkość wystawy w Javie ustalana jest przed zapisaniem w niej danych.
Tablica to najprostsza struktura danych, zbiór elementów tego samego typu, określanych wspólną nazwą. Pierwszy adres wystawy odnosi się do pierwszego elementu, natomiast ostatni adres do poprzedniego elementu ekspozycji. Kolekcje zawierają proste dane tego samego typu, takie jak Integer, Float lub Dane zdefiniowane przez użytkownika. Ponadto wszystkie części mają ten sam rozmiar. Tablice są przechowywane w sąsiadujących lokalizacjach pamięci, a alokacja danych odbywa się od najmniejszego szczegółu lokalizacji pamięci przydzielonej kolekcji.
Korzystając z tablic, należy zwrócić uwagę na kilka ważnych punktów:
- Tablice mogą być elementami danych prostych i podobnych typów, takich jak int lub float, lub typami danych zdefiniowanymi przez użytkownika, takimi jak struktury i obiekty.
- Tablice są uważane za obiekty w Jawa.
- Indeksowanie (indeksowanie) wartości tablicy rozpoczyna się od zera.
- Przed użyciem tablic musimy zdefiniować je do przechowywania danych.
- Miejsce przechowywania tablic w Jawa jest dynamicznie przydzielany w obszarze sterty.
- Długość tablic określa się metodą Długość.
- Rozmiar tablicy musi być wartością całkowitą (Int).
- Losowy dostęp do elementów tablicy jest możliwy w Jawa.
Tablice w Jawa może być jednowymiarowy, dwuwymiarowy lub wielowymiarowy. Wraz ze wzrostem liczby wymiarów tablicy zwiększa się złożoność definicji i dostępu do danych, a także zużywana jest znaczna ilość pamięci. Rysunek 3 przedstawia tablice jednowymiarowe.
Na rysunku 3 widać pierwszy element i indeks po lewej stronie oraz ostatni element i indeks po prawej stronie. Zwróć uwagę; dostęp do elementów tablicy na rysunku 3 zaczyna się od zera i kończy na wartości 4. Indeks zero odnosi się tutaj do wartości 126, indeks jeden do wartości 32, indeks drugi do wartości 230, indeks trzeci do wartości 21 i indeks cztery do wartości 200.
Rysunek 3
Zazwyczaj używamy tablic, gdy znamy z góry liczbę elementów i rozmiar, ponieważ pamięć jest zarezerwowana dla tablic przed przetwarzaniem. Z tego powodu tablice są klasyfikowane jako statyczne struktury danych. Jedną z najważniejszych kwestii, o których należy pamiętać podczas korzystania z tablic, jest złożoność czasowa. Złożoność czasowa wykonywania różnych operacji na tablicach jest następująca:
- Dostęp do elementów: O(1)
- Wyszukiwanie sekwencyjne: O(n)
- Wyszukiwanie binarne, jeśli tablica jest uporządkowana: O(log n)
- Dodatek)
- Usuń: O(n)
Połączona lista w Javie
Połączona lista w Jawa to liniowa i dynamiczna struktura danych, w której znajduje się zbiór podobnych typów elementów danych zwanych węzłami. Ten typ struktury danych przechowuje jednocześnie dwa typy danych. Pierwszy typ to rzeczywista wartość używana w programie, a drugi typ to wskaźnik do lokalizacji kolejnego elementu na liście. Pierwszy węzeł na połączonej liście nazywa się Head, a ostatni węzeł nazywa się Tail. Ostatnia część odnosi się do Null i oznacza koniec połączonej listy.
Połączone listy w Jawa zostały zaprojektowane, aby rozwiązać niektóre problemy z tablicami. Na przykład w tego typu strukturze danych nie ma potrzeby definiowania liczby elementów przed ich użyciem, więc proces alokacji pamięci można wykonać w czasie wykonywania i w miarę potrzeb. Ponadto wstawianie i usuwanie komponentów na listach połączonych odbywa się w prostszy sposób. W Jawalisty połączone mogą być jednokierunkowe, dwukierunkowe i cykliczne.
Lista pojedynczo połączona
- Jak pokazano na rysunku 4, dodawanie wartości na połączonych listach opiera się na jednokierunkowym ruchu do przodu. Ta połączona lista zawiera węzeł i pojedynczy wskaźnik wskazujący następny węzeł.
Rysunek 4
Lista podwójnie połączona
- Dane mogą odbierać zarówno listy połączone w przód, jak i w tył. Z tego powodu ma dwa wskaźniki, z których jeden wskazuje na poprzedni węzeł, a drugi na następny. Na listach połączonych dwukierunkowo można nawigować po obu stronach listy. Rysunek 5 przedstawia listy podwójnie połączone.
Rysunek 5
Okrągła lista połączona
- Na liście połączonej cyklicznie węzły są połączone kołowo. Na tej połączonej liście nie ma żadnych węzłów zerowych, a każdy węzeł można zdefiniować jako pierwszy węzeł. Zwróć także uwagę na krytyczny punkt, że listy podwójnie połączone są dobrą opcją do implementowania kolejek rotacyjnych. Rysunek 6 przedstawia cykliczną listę połączoną.
Rysunek 6
Złożoność czasowa różnych operacji na listach połączonych jest następująca:
- Elementy poprzeczne: O(n)
- Wyszukiwanie komponentu: O(n)
- Dodaj: O(1)
- Usuń: O(1)
Codzienne operacje dotyczące list połączonych obejmują łączenie dwóch połączonych list, dzielenie list i odwracanie listy.
Stos w języku programowania Java
Stos to abstrakcyjna struktura danych w formacie Jawa. Stos to zbiór obiektów, które są dodawane i usuwane w oparciu o zasadę „ostatnie weszło, pierwsze wyszło” (LIFO). Rzeczy można dodawać do stosu w dowolnym momencie, ale tylko ostatnio dodany obiekt można w dowolnym momencie usunąć. Kiedy stos jest zdefiniowany jako tablica lub połączona lista, dziedziczy on wszystkie właściwości kolekcji lub połączonej listy. Rysunek 7 przedstawia stos.
Rysunek 7
Zauważ to język programowania Java stos to uporządkowana lista, która obsługuje tylko operacje wstawiania i usuwania tylko z jednej sekcji, która znajduje się na górze stosu. Ogólnie rzecz biorąc, stosy wykonują operacje, takie jak wywoływanie funkcji zagnieżdżonych, rozwiązywanie labiryntów, dopasowywanie nawiasów itp. Operacje wykonywane na stosie są następujące:
- Push(): Dodaje element na górę stosu.
- Pop(): Usuwa część ze szczytu stosu i zwraca usunięty element ze stosu.
- Peek(): Deklaruje lub pobiera górny komponent stosu bez jego usuwania. Czasami ta metoda nazywa się top ().
- Kolejka w języku programowania Java
Kolejka jest kolejnym szeroko stosowanym struktura danych W Jawa, co jest przeciwieństwem halsu. Linia to zbiór obiektów realizujący proces dodawania i usuwania obiektów w oparciu o zasadę „pierwsze weszło, pierwsze wyszło” (FIFO). W strukturze danych kolejki proces dodawania odbywa się zawsze od końca (Tył), a usuwania od początku (Przód) kolejki. Rysunek 8 przedstawia strukturę danych kolejki Jawa.
Cyfra 8
Wspólne operacje na kolejkach obejmują:
- () Kolejkuj: dodanie elementu na końcu łańcucha.
- Dequeue(): Zwraca pierwszy element kolumny i usuwa go.
Kolejka jest zwykle używana do wyszukiwania wszerz struktury danych takie jak drzewa i wykresy. Kolumny służą do zarządzania harmonogramowaniem procesów w wielozadaniowych systemach operacyjnych, algorytmami planowania, algorytmami planowania okrężnego i podobnymi przypadkami. Są także odpowiednią opcją do asynchronicznego przesyłania danych pomiędzy dwoma podejściami.
Programiści mogą wykorzystywać kolejki w swoich aplikacjach na wiele różnych sposobów. Jednak dwa typy kolumn są szeroko stosowane w Jawa są kolejki okrężne i kolejki dwustronne. Linie kołowe są implementowane i definiowane na ścieżce kołowej. Zaletą tego modelu budowania danych jest to, że rozwiązuje problem niewykorzystanych miejsc w kolejkach prostych i liniowych. Dwukierunkowa kolumna w Jawa umożliwia dodawanie i usuwanie elementów z obu stron kolumny, ale nie ze środka wiersza.
Struktura danych grafów w Javie
Wykres jest nieliniową strukturą danych język programowania Javaktóry składa się z następujących elementów:
- Skończony zbiór wierzchołków nazywany jest węzłami.
- Krawędzie są reprezentowane przez skończony zbiór uporządkowanych par w postaci (e, v). Tutaj v oznacza liczbę wierzchołków, a e oznacza liczbę krawędzi.
- Struktura danych wykresu w Jawa jest podzielony na dwie grupy, wykres skierowany i wykres wagi, w oparciu o jego parametry.
- Struktura danych wykresu ścieżki dzieli wykresy na dwie grupy: graf skierowany i graf nieskierowany.
- Graf skierowany to zbiór połączonych węzłów lub wierzchołków, w którym wszystkie krawędzie mają kierunek od jednego wierzchołka do drugiego.
- Struktura danych wykresu ważonego dzieli wykresy na dwie grupy: wykresy ważone i wykresy nieważone.
- Struktura danych grafu ważonego to graf, w którym każda krawędź ma wagę. Wykres ten nazywany jest także wykresem etykietowanym.
- W strukturze danych grafów nieważonych nie uwzględnia się wagi krawędzi.
Ustawić
Kolekcja to unikalna struktura danych, która znacznie różni się od innych przykładów, ponieważ nie obsługuje zduplikowanych wartości. Ta struktura danych jest używana w Jawa do przechowywania poszczególnych elementów, takich jak unikalny identyfikator użytkownika (ID) (Rysunek 9). Może implementować ustawioną strukturę danych na różne sposoby w Jawa; the najważniejsze to: Linked Hash Set, Hash Set i Tree Set. Te struktury danych są definiowane poprzez interfejsy programowania aplikacji Java (Java Collection API).
Rysunek 9
ostatnie słowo
Staraliśmy się przedstawić Państwu najważniejsze struktury danych służące do przechowywania i organizowania danych w Jawa język programowania. Ten artykuł nauczył nas o kilku krytycznych Jawa struktury danych, takie jak tablice, listy połączone, stosy, kolejki, wykresy i kolekcje.
Teraz, gdy masz już podstawowe informacje na temat struktury danych W Jawa i wiedzieć, jakie cechy ma każdy z nich struktury danych mieć w Jawa i do czego się nadają, powinieneś poświęcić trochę czasu i dowiedzieć się, jak wdrożyć każdy z nich struktury danych w praktyce.
Pobieranie premium motywów WordPressPobierz zerowe motywy WordPressPobierz motywy WordPress za darmoPobierz motywy WordPress za darmobezpłatny kurs onlinepobierz oprogramowanie HuaweiPobierz najlepsze motywy WordPress do pobrania za darmobezpłatny kurs online