Struktura danych to pojęcie z dziedziny informatyki, które odnosi się do określonej metody gromadzenia i porządkowania informacji. Wszystkie struktury danych wykorzystują informacje o tym, gdzie w pamięci komputera znajduje się dana część danych, aby uzyskać dostęp do tych danych i połączyć je z innymi fragmentami danych.
Struktury danych ustanawiają jeden z wielu różnych rodzajów relacji między poszczególnymi fragmentami informacji. Różne rodzaje struktury danych są bardziej wydajne w różnych celach, a trudność kodowania jest bardzo różna w zależności od rodzaju struktury danych.
Tablice należą do najprostszych struktur danych, ale mimo to są bardzo potężnymi narzędziami do organizowania informacji. W tablicy elementom przypisuje się sekwencyjne adresy pamięci, co pozwala na bardzo szybkie określenie adresu pamięci dowolnego elementu tablicy przy użyciu prostych obliczeń matematycznych, co jest kluczową zaletą. Tablice można wyobrazić sobie jako istniejące w dowolnej liczbie wymiarów. Tablica jednowymiarowa może być konceptualizowana jako lista, tablica dwuwymiarowa jako tabela, a tablica trójwymiarowa jako sześcian pojedynczych komórek. Mogą również istnieć tablice o więcej niż trzech wymiarach.
Połączone listy to kolejny prosty, ale bardzo ważny rodzaj struktury danych. W połączonej liście każdy węzeł składa się ze zmiennej zawierającej zarówno aktualne dane, jak i informacje identyfikujące kolejny element na liście. Połączona lista może więc być przeglądana, o ile znany jest adres pierwszego węzła. Ten rodzaj struktury danych jest wszechstronny, ponieważ umożliwia dynamiczny rozwój, ponieważ w dowolnym momencie można łatwo przypisać nowe węzły. Dodanie zmiennej zawierającej lokalizację poprzedniego węzła na liście umożliwia przechodzenie tego typu struktury danych w dowolnym kierunku.
Drzewa porządkują węzły hierarchicznie, zaczynając od węzła głównego i malejąco przez wiele warstw węzłów, aż wszystkie niezbędne dane zostaną zmieszczone w strukturze. Zazwyczaj elementy w drzewie są sortowane w pewien sposób. Drzewa mogą implementować sortowanie i potencjalnie zapewniają znacznie szybszy dostęp do przechowywanych danych, ponieważ każde rozgałęzienie eliminuje z rozważania całe połacie informacji, które musiałyby zostać posortowane na połączonej liście.
Tabele mieszania służą do określenia adresu pamięci, w którym ma być przechowywana dana część danych, przy użyciu równania przekształcającego te dane w adres pamięci. Mogą być bardzo wydajną strukturą do przechowywania i pobierania danych z tablicy.
Wszystkie struktury danych mają na celu zmniejszenie liczby instrukcji, które komputer musi wykonać, aby zlokalizować określoną informację. Różne typy danych nadają się do różnych typów struktury danych, ale większość nowoczesnych języków programowania oferuje obsługę szerokiej gamy struktur danych lub udostępnia narzędzia umożliwiające programistom kodowanie własnych struktur danych.