DSA · Beginner Terminology Guide
Data Structures Terms Every Beginner Should Understand
Quick summary — data structures terms you must know
Data structures are how we store and organize data so we can use it efficiently. Before you can code a solution, you need the vocabulary to talk about solutions. This guide covers the core terms — from arrays to graphs, and Big O to recursion — explained in plain English.
In this guide you will learn:
- Linear structures — arrays, linked lists, stacks, and queues.
- Non-linear structures — trees, graphs, heaps, and hash tables.
- Complexity terms — Big O, time vs space, recursion vs iteration.
- Cheatsheet & glossary — every term in one place.
- Support & career path — how to go from terms to interview-ready.
SECTION 01Linear structures: arrays, linked lists, stacks, queues
Linear data structures store elements in a sequence. Each element has at most one predecessor and one successor. Here are the four you'll hear most often:
| Term | Plain-English Meaning | Typical Use | Time Complexity (avg) |
|---|---|---|---|
| Array | Fixed or dynamic list of items in contiguous memory | Lookups by index, iteration | Access O(1), insert/delete O(n) |
| Linked List | Nodes with pointers; each node links to the next | Frequent inserts/deletes | Access O(n), insert/delete O(1) at head |
| Stack | Last-In-First-Out (LIFO) container | Undo, recursion, DFS | Push/pop O(1) |
| Queue | First-In-First-Out (FIFO) container | BFS, task scheduling | Enqueue/dequeue O(1) |
Linear structures — quick examples:
ARRAY
[10, 20, 30, 40]
- Fast index access: arr[2] → 30
- Inserting in the middle shifts elements
LINKED LIST
10 -> 20 -> 30 -> null
- Fast insert at head: 5 -> 10 -> 20 -> 30
- Slow random access; must walk from head
STACK (LIFO)
push 10, push 20, push 30
pop → 30 (last in, first out)
QUEUE (FIFO)
enqueue 10, enqueue 20, enqueue 30
dequeue → 10 (first in, first out)
When to use each:
ARRAY when:
- You need fast random access by index
- Size is mostly fixed
- You iterate over elements often
LINKED LIST when:
- You insert/delete at the start often
- Size varies a lot
- Memory fragmentation is not a concern
STACK when:
- You need LIFO (undo history, function calls, DFS)
- Matching brackets or tokens
QUEUE when:
- You need FIFO (task queues, printers, BFS)
- Processing in order
Quick rule of thumb:
- Frequent lookups → array
- Frequent inserts at start → linked list
- LIFO → stack
- FIFO → queue
SECTION 02Non-linear structures: trees, graphs, heaps, hashing
Non-linear structures allow one element to have many relationships. They're used for hierarchies, networks, and fast lookups. Here are the ones you'll hear most:
| Term | Plain-English Meaning | Typical Use | Time Complexity (avg) |
|---|---|---|---|
| Tree | Nodes with parent-child relationships | File systems, DOM, expressions | Search O(log n) in balanced trees |
| Binary Search Tree (BST) | Tree where left < node < right | Sorted lookups | Search O(log n) when balanced |
| Heap | Tree with a heap property (min or max at root) | Priority queues, top-k problems | Insert/extract O(log n), peek O(1) |
| Graph | Nodes connected by edges | Maps, social networks, dependencies | BFS/DFS O(V + E) |
| Hash Table | Key-value store using a hash function | Dictionaries, sets, caching | Lookup O(1) average |
Non-linear structures — visual intuition:
TREE
10
/ \
5 15
/ \ / \
3 7 12 20
- Each node has at most one parent
- Ordered left-to-right in a BST
GRAPH
A -- B -- C
| |
D -- E
- Nodes connected by edges
- Edges can be directed or undirected, weighted or not
HASH TABLE
key "apple" → hash → bucket 3
key "banana" → hash → bucket 7
- Keys are hashed to a bucket
- Lookups are O(1) on average
- Collisions are handled with chaining or open addressing
HEAP (min-heap example)
1
/ \
3 5
/ \ / \
8 7 6 10
- Parent is always ≤ children
- Extract min = peek at root, then re-heapify
Hash tables vs trees:
HASH TABLE:
- Best for exact lookups (is this key present?)
- O(1) average
- Not ordered
- Bad for range queries
TREE (BALANCED BST):
- Good for ordered data
- O(log n) lookup, insert, delete
- Supports range queries and sorted traversal
- Foundation of many databases and indexes
When to use which:
- Exact membership → hash table (set, map)
- Sorted order, range queries → balanced tree
- Priority lookups → heap
- Relationships, networks → graph
Real-world mapping:
- Dictionary / cache → hash table
- Database index → B-tree
- Task scheduler by priority → heap
- Friend network / map → graph
SECTION 03Complexity terms: Big O, time vs space, recursion
Talking about data structures means talking about how fast they are. That's what Big O notation is for. Here are the terms you need:
| Term | Plain-English Meaning | Example |
|---|---|---|
| Time Complexity | How the runtime grows with input size | Linear scan of an array is O(n) |
| Space Complexity | How much extra memory an algorithm uses | Copying an array uses O(n) space |
| Big O | Upper bound on growth rate (worst-case) | Bubble sort is O(n²) |
| O(1) | Constant time — no growth with input | Array index access |
| O(log n) | Grows with the log of input size | Binary search on a sorted array |
| O(n) | Grows linearly with input | Summing all elements of an array |
| O(n log n) | Slightly worse than linear; standard for good sorts | Merge sort, heap sort |
| O(n²) | Quadratic — grows fast; often too slow at scale | Nested loops over the same array |
| Recursion | A function that calls itself | Factorial, DFS, quicksort |
| Iteration | Using loops instead of self-calls | Loops, while conditions |
Big O in code:
O(1) — constant
def get_first(arr):
return arr[0]
O(n) — linear
def sum_all(arr):
total = 0
for x in arr:
total += x
return total
O(n²) — quadratic
def has_duplicate(arr):
for i in range(len(arr)):
for j in range(i + 1, len(arr)):
if arr[i] == arr[j]:
return True
return False
O(log n) — binary search
def binary_search(arr, target):
lo, hi = 0, len(arr) - 1
while lo <= hi:
mid = (lo + hi) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
lo = mid + 1
else:
hi = mid - 1
return -1
Recursion vs iteration:
RECURSION
def factorial(n):
if n == 0:
return 1
return n * factorial(n - 1)
- Elegant, mirrors the problem definition
- Uses call stack; risk of stack overflow
- Not always the fastest
ITERATION
def factorial(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
- More memory-efficient
- Often faster in practice
- Sometimes less readable for tree problems
When to use which:
- Trees, graphs, divide-and-conquer → recursion
- Simple loops, large inputs → iteration
Big O view:
- Both factorial examples run in O(n) time
- Recursion uses O(n) extra stack space
SECTION 04Cheatsheet & glossary of terms
Use this quick reference whenever you hear a term you're unsure about:
Glossary of data structures terms (A-Z):
Array: Fixed-size or dynamic list of items in order.
Balanced Tree: Tree where height is kept small (O(log n) ops).
Big O: Upper bound on growth rate of an algorithm.
BST: Binary Search Tree — left < node < right.
DFS: Depth-First Search — go deep before going wide.
BFS: Breadth-First Search — go wide before going deep.
Graph: Nodes connected by edges; used for networks.
Hash Table: Key-value store using a hash function.
Heap: Tree with a heap property; used for priority queues.
Linked List: Nodes pointing to each other.
LIFO / FIFO: Stack = LIFO; Queue = FIFO.
Node: A single element in a data structure.
O(1), O(log n), O(n), O(n log n), O(n²): Common Big O classes.
Queue: FIFO container.
Recursion: A function calling itself.
Space Complexity: Memory used by an algorithm.
Stack: LIFO container.
Time Complexity: Runtime growth as input grows.
Tree: Parent-child hierarchical structure.
Study tracker — data structures terms:
Week: _____
Terms learned this week:
1.
2.
3.
Code I wrote to practice:
1.
2.
Interview-style questions I can now answer:
1.
2.
Terms still fuzzy:
1.
2.
Next week's focus:
_______________________________
Big O chart — from fastest to slowest:
O(1) Constant Array index access
O(log n) Logarithmic Binary search
O(n) Linear Simple scan
O(n log n) Linearithmic Merge sort, heap sort
O(n²) Quadratic Nested loops
O(n³) Cubic Triple nested loops
O(2^n) Exponential Naive recursive fib
O(n!) Factorial Brute-force permutations
Rule of thumb:
- Aim for O(n log n) or better when possible
- O(n²) is fine for small inputs, slow for large ones
- O(2^n) and O(n!) only work for tiny inputs
SECTION 05Support & career path
Here's how Uncodemy helps you go from "I've heard these terms" to "I can solve problems with them":
- Mentor check-ins — weekly 1:1 sessions with your mentor to review progress.
- Live problem-solving labs — implement every structure you learn, in code.
- Mock interviews — practice DS/Algo interview rounds with experienced interviewers.
- Placement drives — attend exclusive drives with hiring partners.
- Lifetime access — revisit recordings, templates, and resources anytime.
SECTION 06Interview Q&A — data structures terms
Q1Do I need to memorise all of Big O?
No — but you should know the common classes (O(1), O(log n), O(n), O(n log n), O(n²)) and how to estimate them for small code snippets.
Q2Which data structure should I learn first?
Start with arrays and hash tables. They're the most-used in everyday code and cover a huge fraction of interview questions.
Q3What's the difference between a stack and a queue?
A stack is LIFO (last in, first out). A queue is FIFO (first in, first out). Think of a stack as a pile of plates; a queue as a line at a ticket counter.
Q4When should I use a tree instead of a hash table?
Use a tree when you need ordered data or range queries. Use a hash table for exact lookups when order doesn't matter.
Q5Is recursion ever better than iteration?
Yes — for problems that are naturally recursive (trees, divide and conquer). For most loops, iteration is simpler and more memory-efficient.
SECTION 07Test yourself — data structures terms
Five questions. No sign-up.
0 / 5Pick an answer to see why it is right or wrong.
SECTION 08Frequently asked questions
What is a data structure in simple words?
A data structure is a way of organizing and storing data so operations like searching, inserting, or deleting are efficient.
Do I need to know maths to learn data structures?
Only basic arithmetic and a little intuition about growth rates. You don't need advanced maths to get started.
Which language is best for learning data structures?
Any modern language works — Python, Java, JavaScript, or C++. Pick the one you're most comfortable with first.
How long does it take to learn these terms well?
A few weeks to get comfortable with the vocabulary, and a few months of practice to become confident solving problems with them.
Will Uncodemy help me prepare for DSA interviews?
Yes — our DSA programme covers terminology, implementation, and interview-style problems, with mock interviews and placement support.
SECTION 09Related reads
Classroom & online · Noida
Build your data structures foundation with Uncodemy
Our DSA Training Course is designed for beginners — with live problem-solving, mock interviews, and placement support.
₹17,500 · full programme- Complete DSA roadmap
- Arrays, linked lists, trees, graphs, DP
- Live problem-solving labs
- Mock interviews & placement support