## Here is a List of Data Structures

Several essential data structures are widely used in computer science. These include arrays, which are collections of elements of the same data type stored in contiguous memory locations. Linked lists, however, are dynamic collections of elements, where each element points to the next element.

### Abstract

**Associative arrays****:**Associative arrays can represent groups of data elements that are accessible by providing a key with the proper name.**Multimap:**A multimap is an abstract data type that allows for several values to be associated with a single key in an associative array. There are different types of multimaps, which can be classified as either hash-based or comparison-based.**List**: A list is a data structure in which the elements, known as nodes, are connected together through links. Every node consists of both data and a pointer. Each node stores a reference to the location in memory of the following node, which connects the nodes.**Stack:**A stack is a linear data structure whereby the operations are carried out in a specified sequence. Either LIFO (Last In First Out) or FILO (First In Last Out) could be the sequence. FILO indicates that the element inserted first comes out last; LIFO indicates that the element inserted last arrives first.**Queue:**A queue is a collection of objects maintained in a sequence that may be changed by adding objects at one end of the sequence and deleting objects from the other end.Double-ended Queue, or a deque, is a linear data structure. In a deque, the data may be entered and removed from both front and rear ends, unlike in a queue where the data can be just entered from one end and deleted from another.**Double-ended queue:****Priority queue:**A priority queue is another type of queue arranged according to element priority values. Usually, elements with higher priority values are obtained or eliminated before those with lower priority values. Every component has a priority value connected to it. An item added to our system positions itself depending on its priority value.**Double-ended priority queue:**A double-ended priority queue (DEPQ) or double-ended heap is a data structure similar to a priority queue or heap, but allows for effective removal of both the maximum and minimum, according to some ordering on the keys, items, stored in the structure**Set****Multiset****Disjoint-set**

**Arrays**

**Bit array****Circular buffer****Dynamic array****Hash table****Hashed array tree****Sparse matrix**

### Linked List

**Singly Linked List:**In singly linked lists, nodes have two fields: one called “value” and the other called “next,” which points to the node after it in the list of nodes. Singly linked lists support the following operations: traversal, insertion, and deletion.**Doubly Linked List:**A doubly linked list is a type of linked data structure made up of nodes, or a collection of entries that are linked sequentially. Three fields total—two link fields and one data field—are present in every node.

**Circular Linked List:**A circular linked list is a type of data structure in which the last node connects to the first to form a loop**.**This structure permits uninterrupted traversal in real time.

### Trees

**B-tree:**The B-tree is a self-balancing tree data structure that supports searches, sequential access, insertions, and deletions in logarithmic time while maintaining sorted data. By allowing nodes with more than two offspring, the B-tree generalizes the binary search tree.**Binary search tree****AA tree****AVL tree****Red–black tree****Self-balancing tree****Splay tree****Heap****Binary heap****Binomial heap****Fibonacci heap****R-tree****R* tree****R+ tree****Hilbert R-tree****Trie****Hash tree**

**Graphs**

**Binary decision diagram****Directed acyclic graph****Directed acyclic word graph**