Czy mógłby mi ktoś przedstawić różnice w definicji, np na przykładzie instancji klasy, obiektu, jest struktura czy kolekcja danych?
W gruncie rzeczy to to samo
O strukturach danych zwykle mowi sie w kontekscie algorytmicznym a o kolekcjach w kontekscie biblioteki
dla mnie kolekcja, to jak bibloteka a struktura to jak ksiazka
Kolekcja moze zawierac kilka (jednakowych) struktur
Struktura, moze zawierac kilka roznych kolekcji tych samych struktur
Instancja obiektu moze byc zarowno struktura jak i kolekcja danych
Np
List<T> kolekcja = new List<T>()
gdzie T to Twoja struktura
struct Struktura
{
int zmiennaLiczbowa;
string zmiennaZnakowa
List<ABC> zmiennaKolekcjiABC
List<CBA> zmiennaKolekcjiCBA
}
dodatkowo istnieja rozne typy kolekcji (kolejka, lista, tablica itd.)
Mnie w szkole średniej uczyli że:
struktura (danych) - to taki pojemnik na dane. Masz strukturę osoba i ona ma same pola jak np. imie, nazwisko, wiek
struct Osoba {
string imie;
string nazwisko;
int wiek;
}
klasa to następny krok ewolucji struktury - zawiera metody. dla struktury osoba może zawierać metody np. isWoman() / isMan()
zawiera jakieś zachowania przewidziane dla struktury.
class Osoba {
string imie;
string nazwisko;
int wiek;
bool isOlderThan(Osoba value);
bool isWoman();
}
obiekt - to instancja, wcielenie danej klasy lub struktury.
Osoba* kowalski = new Osoba("Jan", "Kowalski");
kolekcja - zestaw obiektów danej klasy/struktury. Np. liste albo tablice.
List<Osoba> osoby = List.of(new Osoba("Jan", "Kowalski), new Osoba("Janusz", "Nosacz"));
Struktura jest pojęciem szerszym, tj. każda kolekcja jest strukturą, nie każda struktura jest kolekcją.
Lista, zbiór, mapa itp. jest strukturą reprezentującą nieokreśloną liczbę podobnych elementów. Np. String może być interpretowany jako lista znaków.
Natomiast bardzo łatwo znaleźć przykład struktury, która nie spełnia powyższej definicji - np. struktura z dwoma zmiennymi char.
Natomiast bardzo łatwo znaleźć przykład struktury, która nie spełnia powyższej definicji - np. struktura z dwoma zmiennymi char.
Przeciez to tez kolekcja. Na dwa elementy :) W czym to jest gorsze od np. optionala?
Struktura: takie coś co jest w każdym języku: zbiór pól np. struct X {string name; string surname}
Struktura danych: generalny termin określający coś co trzyma dane w pamięci komputera w jakimś określony sposób
Kolekcja: coś co trzyma wiele elementów danego typu w określony dla siebie sposób.
Struktura to struktura danych, ale nie odwrotnie. Struktura danych to najbardziej bazowe pojęcie.
Największym problemem jest to, że jak ktoś użyje słowa "struktura danych" to najczęściej chodzi o o coś co jest używane w algorytmach. I w tym wypadku struktury danych są zazwyczaj kolekcjami