flowchart TD
A[Choose Data Structure]
A --> B{"Dataset Size?"}
B -->|Small| C[Simple Structures]
B -->|Large| D[Scalable Structures]
C --> E[Array]
C --> F[Linked List]
D --> G{"Primary Operation?"}
G -->|Fast Lookup| H[Hash Table]
G -->|Sorted Data| I[Balanced BST]
G -->|Priority Processing| J[Heap]
G -->|Range Queries| K[Segment Tree]
G -->|Word Lookup| L[Trie]
G -->|Network Modeling| M[Graph]
H --> H1["Lookup: O(1)"]
I --> I1["Lookup: O(log n)"]
J --> J1["Min/Max: O(log n)"]
K --> K1["Range Query: O(log n)"]
L --> L1["Prefix Search: O(m)"]
M --> M1["Traversal: O(V+E)"]