Segue abaixo as 10 estruturas de dados mais importantes e pelo menos duas referências para cada uma delas:
Uma coleção de elementos do mesmo tipo de dados, organizados em uma sequência indexada. Os elementos podem ser acessados através de um índice numérico. Veja mais.
Referências:
GeeksforGeeks. Arrays in C/C++. Disponível em: https://www.geeksforgeeks.org/arrays-in-c-cpp/. Acesso em: 11 abr. 2023.
WIKIPEDIA. Array data structure. Disponível em: https://en.wikipedia.org/wiki/Array_data_structure. Acesso em: 11 abr. 2023.
TUTORIALSPOINT. C# - Arrays. Disponível em: https://www.tutorialspoint.com/csharp/csharp_arrays.htm. Acesso em: 11 abr. 2023.
DOTNETPERLS. C# Array Examples. Disponível em: https://www.dotnetperls.com/array. Acesso em: 11 abr. 2023.
MICROSOFT. Matrizes denteadas (Guia de Programação em C#). Disponível em: https://learn.microsoft.com/pt-br/dotnet/csharp/programming-guide/arrays/jagged-arrays. Acesso em 05 maio de 2023.
Uma sequência de elementos, onde cada elemento contém um ponteiro para o próximo elemento. A inserção e remoção de elementos é mais fácil em listas ligadas do que em arrays.
Referências:
GeeksforGeeks. Linked List Data Structure. Disponível em: https://www.geeksforgeeks.org/data-structures/linked-list/. Acesso em: 11 abr. 2023.
WIKIPEDIA. Linked list. Disponível em: https://en.wikipedia.org/wiki/Linked_list. Acesso em: 11 abr. 2023.
DOTNETPERLS. C# LinkedList Examples. Disponível em: https://www.dotnetperls.com/linkedlist. Acesso em: 13 abr. 2023.
Uma estrutura de dados que segue o princípio LIFO (Last In, First Out), onde o último elemento inserido é o primeiro a ser removido.
Referências:
GeeksforGeeks. Stack Data Structure. Disponível em: https://www.geeksforgeeks.org/stack-data-structure/?ref=gcse. Acesso em: 11 abr. 2023.
WIKIPEDIA. Stack (abstract data type). Disponível em: https://en.wikipedia.org/wiki/Stack_(abstract_data_type). Acesso em: 11 abr. 2023.
Cormen, T. H. et al. Introduction to Algorithms. 3rd ed. The MIT Press, 2009.
Uma estrutura de dados que segue o princípio FIFO (First In, First Out), onde o primeiro elemento inserido é o primeiro a ser removido.
Referências:
GeeksforGeeks. Queue Data Structure. Disponível em: https://www.geeksforgeeks.org/queue-data-structure/?ref=gcse. Acesso em: 11 abr. 2023.
WIKIPEDIA. Queue (abstract data type). Disponível em: https://en.wikipedia.org/wiki/Queue_(abstract_data_type). Acesso em: 11 abr. 2023.
Goodrich, M. T.; Tamassia, R. W.; Goldwasser, M. H. Data Structures and Algorithms in Java. 6th ed. Wiley, 2014.
Uma estrutura de dados hierárquica que consiste em nós conectados por arestas. As árvores são frequentemente usadas para representar estruturas hierárquicas, como diretórios de arquivos ou a hierarquia de uma organização.
Referências:
GeeksforGeeks. Tree Data Structure. Disponível em: https://www.geeksforgeeks.org/data-structures/tree/. Acesso em: 11 abr. 2023.
WIKIPEDIA. Tree (data structure). Disponível em: https://en.wikipedia.org/wiki/Tree_(data_structure). Acesso em: 11 abr. 2023.
Cormen, T. H. et al. Introduction to Algorithms. 3rd ed. The MIT Press, 2009.
Uma estrutura de dados que consiste em vértices conectados por arestas. Os grafos são frequentemente usados para representar relações entre objetos ou entidades em uma aplicação.
Referências:
GeeksforGeeks. Graph Data Structure and Algorithms. Disponível em: https://www.geeksforgeeks.org/graph-data-structure-and-algorithms/. Acesso em: 11 abr. 2023.
WIKIPEDIA. Graph (abstract data type). Disponível em: https://en.wikipedia.org/wiki/Graph_(abstract_data_type). Acesso em: 11 abr. 2023.
Goodrich, M. T
Uma estrutura de dados que usa uma função hash para mapear chaves a valores, permitindo a busca, inserção e remoção de elementos em tempo constante, em média.
Referências:
GeeksforGeeks. Hashing Data Structure. Disponível em: https://www.geeksforgeeks.org/hashing-data-structure/. Acesso em: 11 abr. 2023.
WIKIPEDIA. Hash table. Disponível em: https://en.wikipedia.org/wiki/Hash_table. Acesso em: 11 abr. 2023.
Sedgewick, R.; Wayne, K. Algorithms. 4th ed. Addison-Wesley, 2011.
Uma coleção de elementos únicos sem ordem específica. As operações de inserção, remoção e busca são geralmente executadas em tempo constante.
Referências:
GeeksforGeeks. Set in C++ STL. Disponível em: https://www.geeksforgeeks.org/set-in-cpp-stl/. Acesso em: 11 abr. 2023.
WIKIPEDIA. Set (abstract data type). Disponível em: https://en.wikipedia.org/wiki/Set_(abstract_data_type). Acesso em: 11 abr. 2023.
Goodrich, M. T.; Tamassia, R. W.; Goldwasser, M. H. Data Structures and Algorithms in Java. 6th ed. Wiley, 2014.
Uma estrutura de dados que permite a busca, inserção e remoção de elementos com base em sua prioridade. Os heaps podem ser usados para implementar filas de prioridade.
Referências:
GeeksforGeeks. Heap Data Structure. Disponível em: https://www.geeksforgeeks.org/heap-data-structure/. Acesso em: 11 abr. 2023.
WIKIPEDIA. Heap (data structure). Disponível em: https://en.wikipedia.org/wiki/Heap_(data_structure). Acesso em: 11 abr. 2023.
Cormen, T. H. et al. Introduction to Algorithms. 3rd ed. The MIT Press, 2009.
Uma estrutura de dados que armazena um conjunto de strings, permitindo a busca de prefixos e outras operações relacionadas a strings de maneira eficiente.
Referências:
GeeksforGeeks. Trie (Keyword Tree) Data Structure. Disponível em: https://www.geeksforgeeks.org/trie-insert-and-search/. Acesso em: 11 abr. 2023.
WIKIPEDIA. Trie. Disponível em: https://en.wikipedia.org/wiki/Trie. Acesso em: 11 abr. 2023.
Sedgewick, R.; Wayne, K. Algorithms. 4th ed. Addison-Wesley, 2011.