androidengineers.Book a session

Foundations of Data Structures

What is a Data Structure?

article15 minEasy

At its simplest, a data structure is a specialized format for organizing, processing, retrieving, and storing data in computer memory. Without data structures, programs would treat memory as a massive, unstructured collection of bytes, making efficient algorithms impossible.

In software engineering, algorithms and data structures are two sides of the same coin:

Program = Data Structures + Algorithms (Niklaus Wirth, 1976)


The Core Purpose of Data Structures

Every software system manages state — whether it is a list of contacts on an Android smartphone, a stream of video frames on YouTube, or a graph of road networks in Google Maps.

A data structure accomplishes three critical objectives:

  1. Structural Organization: Reflects the real-world relationship between elements (e.g., linear sequence, hierarchy, interconnected network).
  2. Computational Efficiency: Enables fast search, insertion, deletion, and traversal operations according to predictable Big-O bounds.
  3. Memory Optimization: Manages physical RAM contiguity, memory overhead (pointers vs contiguous arrays), and cache hardware alignment.

Classification of Data Structures

Data structures are categorized broadly based on their organization and behavior:

                      Data Structures
                     /               \
            Primitive                 Non-Primitive
           (int, float, byte,        /             \
            char, boolean)      Linear            Non-Linear
                               /      \           /        \
                          Static     Dynamic    Trees     Graphs
                         (Arrays)   (Lists,
                                     Stacks,
                                     Queues)

1. Primitive vs Non-Primitive

  • Primitive: Directly supported by machine hardware and programming language types (e.g., Int (32-bit), Long (64-bit), Byte, Float).
  • Non-Primitive: Derived structures constructed from primitives and object references to store collections (e.g., arrays, linked lists, trees).

2. Linear vs Non-Linear

  • Linear: Elements form a sequential sequence where every element has a unique predecessor and successor (except the first and last). Examples: Arrays, Linked Lists, Stacks, Queues.
  • Non-Linear: Elements exhibit hierarchical or networked relationships. An element can be connected to multiple elements. Examples: Trees, Heaps, Graphs, Tries.

Physical vs Logical Data Structures

A fundamental distinction every engineer must understand is the difference between physical storage and logical behavior:

DimensionPhysical Data StructuresLogical Data Structures (ADTs)
DefinitionHow data is physically laid out in RAM chipsThe behavioral contract (API) exposed to users
ExamplesArrays (contiguous blocks), Linked nodes (pointer references)Stacks (LIFO), Queues (FIFO), Priority Queues, Maps
Hardware TieDictates CPU cache lines, pointer overhead, memory fragmentationAbstract and language-agnostic

For example, a Stack is an Abstract Data Type (ADT) with push and pop operations. It can be physically implemented using an Array or a Linked List.


Real-World Mobile Example: The Android View Tree

In Android, every screen layout is represented as a tree data structure:

// Pseudo-representation of UI component tree
class ViewGroup(val id: String) : View() {
    val children = mutableListOf<View>()
    
    fun measureAndLayout() {
        for (child in children) {
            child.measureAndLayout()
        }
    }
}

When the operating system needs to draw a frame at 60Hz or 120Hz (every 8.3ms), it traverses this tree using Depth-First Search (DFS). Choosing an inappropriate data structure here would cause dropped frames and UI jank.


Summary

  • A data structure organizes data in memory to enable specific computational operations with predictable time and space complexities.
  • Data structures are classified into primitive vs. non-primitive, and linear vs. non-linear.
  • Distinguish between physical layout (contiguous array vs. pointer-based nodes) and logical behavior (Stack, Queue, Map).

YOUR LEARNING JOURNEY

0 of 55 available lessons completed

Progress saved in this browser. No account needed.
What is a Data Structure? | Data Structures | Android Engineers