ASKiIMAN™ REALM 07 / COMPUTING
--:-- · -- --- ----
RT
L
R
LL
LR
0
1
2
3
4

The Data Structure

Organizing, Storing & Accessing Data Efficiently

Central Doctrine

A program does not merely process data. It must organize that data so it can be stored, accessed, searched, modified, and processed efficiently. Data structures provide the internal architecture of information inside software. The same data can be organized in different ways, and the choice of structure fundamentally alters what a program can achieve.

DATA → STRUCTURE → STACK / QUEUE → LIST → MAP → TREE → GRAPH → EFFICIENCY

The Internal Chambers

Ontology of Data Architecture

CHAMBER 01

What is a Data Structure?

→
  • Organization and representation of data
  • Operations: Access, Insert, Delete, Update
  • Searching and Traversal
  • Why structure dictates computational efficiency
CHAMBER 02

Abstract Data Types

ADT
→
DS
  • ADT: Data model, operations, and interface
  • Implementation vs. Encapsulation
  • List, Stack, Queue, Set, Map ADTs
  • Difference between ADT (concept) and DS (implementation)
CHAMBER 03

Primitive & Non-Primitive

int x;VS
  • Primitive: Integer, Float, Boolean, Char
  • Non-primitive/Composite: Arrays, Objects
  • Linear vs. Non-linear structures
  • Static vs. Dynamic structures
CHAMBER 04

Arrays

A
B
C
D
  • Indexed collection in contiguous memory
  • O(1) Random access via Index
  • Fixed-size constraints
  • Traversal, insertion, deletion costs
CHAMBER 05

Dynamic Arrays

  • Capacity vs. Length
  • Growth strategy and Resizing
  • Amortized insertion cost
  • Python lists and Java ArrayLists
CHAMBER 06

Strings

S
T
R
  • Strings as character sequences/arrays
  • Indexing, slicing, concatenation
  • Immutable strings (e.g., Python/Java)
  • Searching, replacing, splitting
CHAMBER 07

Linked Lists

  • Nodes: Data field + Pointer/Link
  • Head, Tail, Singly, Doubly, Circular
  • O(1) Insertion/Deletion at known nodes
  • O(n) Sequential search (no random access)
CHAMBER 08

Array vs Linked List

  • Contiguous vs. Scattered memory layout
  • Random access vs. Sequential access
  • Memory overhead for pointers
  • Cache locality advantages of arrays
CHAMBER 09

Stacks

  • LIFO: Last In, First Out
  • Push, Pop, Peek, IsEmpty
  • Stack overflow / underflow
  • Uses: Function calls, Undo, Backtracking
CHAMBER 10

Queues

  • FIFO: First In, First Out
  • Enqueue, Dequeue, Front, Rear
  • Linear vs. Circular queues
  • Uses: Scheduling, buffers, BFS
CHAMBER 11

Deque

↔
↔
  • Double-ended queue
  • Insert/Delete at both front and rear
  • Input-restricted & Output-restricted deques
  • Combines Stack and Queue functionality
CHAMBER 12

Hash Tables

"ID"→
f(x)
→
  • Key-value storage mapping
  • Average O(1) constant-time lookup
  • Index generation and Buckets
  • Handling collisions and load factors
CHAMBER 13

Hash Functions

"DATA"⚙️0x4F
  • Deterministic mapping of keys to values
  • Ensuring uniform distribution
  • Minimizing collision probability
  • Hashing strings vs. integers
CHAMBER 14

Collision Resolution

  • Separate chaining: Linked lists at buckets
  • Open addressing: Linear/Quadratic probing
  • Cluster formation and Double hashing
  • Rehashing and Resizing when full
CHAMBER 15

Sets

∩
  • Collection of unique elements (no duplicates)
  • O(1) Membership testing (Hash sets)
  • Union, Intersection, Difference math
  • Subsets and Supersets
CHAMBER 16

Maps / Dictionaries

KEY→VALUE
  • Key-value pair mapping
  • Keys must be unique (and often immutable)
  • O(1) Lookup, Insert, Update, Delete
  • Ordered maps vs. Unordered Hash maps
CHAMBER 17

Trees

  • Non-linear hierarchical structures
  • Nodes, Edges, Root, Leaves
  • Parent, Child, Sibling relationships
  • Depth, Height, Paths, and Subtrees
CHAMBER 18

Binary Trees

  • Each node has at most two children
  • Left child and Right child
  • Full, Complete, Perfect, and Balanced types
  • Skewed trees (degrade to linked lists)
CHAMBER 19

Tree Traversal

  • Inorder: Left, Root, Right (Sorted in BST)
  • Preorder: Root, Left, Right (Copying)
  • Postorder: Left, Right, Root (Deletion)
  • Level-order: Top to bottom (BFS)
CHAMBER 20

Binary Search Trees

  • Rule: Left < Root < Right
  • O(log n) average Search, Insert, Delete
  • Finding Minimum/Maximum rapidly
  • Worst-case degeneration to O(n)
CHAMBER 21

Heaps

  • Complete binary tree representation
  • Min-heap: Parent ≤ Children
  • Max-heap: Parent ≥ Children
  • Extract-min/max and Heapify operations
CHAMBER 22

Priority Queues

1
2
9
  • Elements processed by Priority, not arrival time
  • Highest-priority element removed first
  • Efficiently implemented using Heaps
  • Used in scheduling and graph algorithms
CHAMBER 23

Graphs

  • Vertices (Nodes) and Edges (Connections)
  • Directed vs. Undirected
  • Weighted vs. Unweighted
  • Paths, cycles, and connectivity
CHAMBER 24

Graph Representation

vs
  • Adjacency Matrix: Fast lookup, high space O(V²)
  • Adjacency List: Space efficient O(V+E) for sparse graphs
  • Choosing based on dense vs. sparse data
CHAMBER 25

Graph Traversal

  • Breadth-First Search (BFS): Uses Queue, finds shortest path (unweighted)
  • Depth-First Search (DFS): Uses Stack/Recursion, good for cycle detection
  • Maintaining a Visited set
CHAMBER 26

Directed Graphs

  • One-way edges (Incoming / Outgoing)
  • In-degree and Out-degree
  • Directed Acyclic Graphs (DAG)
  • Topological ordering and dependencies
CHAMBER 27

Weighted Graphs

  • Edges have Cost / Distance / Weight
  • Shortest-path problems (Dijkstra's)
  • Road networks and routing optimization
CHAMBER 28

Specialized Trees

  • Balanced Trees: AVL, Red-Black
  • Rotations to guarantee O(log n) height
  • B-Trees for database indexing
  • Segment trees for range queries
CHAMBER 29

Tries (Prefix Trees)

C
A
T
  • Character-by-character storage
  • Extremely fast O(length) Prefix search
  • Autocompletion and Dictionary applications
CHAMBER 30

Matrices

  • Rows, Columns, and Elements (2D Arrays)
  • Matrix traversal and multiplication
  • Dense vs. Sparse representation
CHAMBER 31

Sparse Data Structures

  • Storing only non-zero values
  • Massive memory savings for sparse graphs
  • Coordinate representation
CHAMBER 32

Pointers & References

0x4F
  • Memory addresses and Dereferencing
  • Nodes linking dynamically
  • Null references and Dangling references
  • The foundation of linked structures
CHAMBER 33

Memory Organization

VS
  • Contiguous (Array) vs Non-contiguous (Linked)
  • Static allocation vs Dynamic allocation
  • Memory overhead and Cache locality
CHAMBER 34

Mutable vs Immutable

✏️
VS
🔒
  • In-place modification (Mutable) vs. Copying (Immutable)
  • Aliasing, References, and Side effects
  • Functional-style data handling trade-offs
CHAMBER 35

Data Structure Ops

  • Access, Search, Insert, Delete, Update
  • Traverse, Sort, Merge, Split, Copy, Reverse
  • Membership testing
CHAMBER 36

Operation Complexity

  • Array: O(1) Access, O(n) Insert/Delete
  • Linked List: O(n) Access, O(1) Insert/Delete (if node known)
  • Hash Table: O(1) Search/Insert average
  • BST: O(log n) Search/Insert average
CHAMBER 37

Amortized Cost

  • Average cost of operations over a sequence
  • Dynamic array resizing triggers occasional O(n) copy
  • Averaged out, appending remains O(1) amortized
CHAMBER 38

Iterators & Iterables

🔍
  • Iteration protocol and sequential access
  • Maintaining traversal state
  • Abstracting collection traversal for loops
CHAMBER 39

Generators

⚙️
  • Lazy evaluation and yielding values on-demand
  • Extreme memory efficiency for large datasets
  • Streaming data logic
CHAMBER 40

Nested Structures

  • List of lists, Dictionary of lists
  • Hierarchical JSON-like data
  • Traversing complex recursive structures
CHAMBER 41

Structures in Systems

🌐
🖨️
📁
  • Browser history → Stack
  • Printer queue → Queue
  • File hierarchy → Tree
  • Road network → Graph
CHAMBER 42

Choosing a Structure

  • Random Access? → Array
  • Frequent end insert/delete? → Linked List
  • Key → Value? → Map
  • Hierarchical? → Tree
CHAMBER 43

Linear vs Non-Linear

  • Linear: Array, Linked List, Stack, Queue
  • Non-Linear: Tree, Graph
  • Sequential progression vs. Branching networks
CHAMBER 44

Static vs Dynamic

  • Static: Fixed size at compilation
  • Dynamic: Grows/Shrinks at runtime
  • Memory allocation trade-offs
CHAMBER 45

Trade-offs

SPEEDMEM
  • Speed vs. Memory
  • Access speed vs. Insertion speed
  • Contiguous vs. Linked storage overhead
  • Preprocessing cost vs. Query speed
CHAMBER 46

Key Comparisons

ARRAYVSLIST
  • Stack vs Queue | Set vs Dictionary
  • Hash Table vs Binary Search Tree
  • Adjacency Matrix vs Adjacency List
CHAMBER 47

Key Vocabulary

  • ADT, Array, Linked List, Node, Pointer
  • Stack, Queue, Hash, Bucket, Collision
  • Tree, Root, Edge, Graph, Vertex, Trie
CHAMBER 48

Problem Skills

✓
  • Trace linked-list and stack operations
  • Construct hash tables and resolve collisions
  • Traverse trees (Inorder, Preorder, Postorder)
  • Determine operation complexities
CHAMBER 49

Master Data Map

LINEAR:ARR, LL, STACK, QUEUE
ASSOC:SET, MAP, HASH
NON-LIN:TREE, GRAPH, HEAP
FINAL CHAMBER

The Bridge to Engine

REALM 07 taught:
DATA → STRUCTURE → ACCESS
↓
REALM 08 now asks:
HOW FAST CAN IT BE PROCESSED?
COMPLEXITY