Last Updated on April 20, 2026 by Rajeev Bagra
When beginners first see this code:
class Node():
def __init__(self, state, parent, action):
self.state = state
self.parent = parent
self.action = action
…it may look small and simple.
But this tiny class powers some of the most important ideas in Artificial Intelligence, pathfinding, graphs, game logic, and problem solving systems.
It helps a computer answer questions like:
- How do I solve this maze?
- What is the shortest route?
- How did I reach this answer?
- What move should I make next?
What Is a Node?
A Node represents one step in a journey.
Think of it like a checkpoint containing memory.
Each node stores three things:
| Attribute | Meaning |
|---|---|
state | Current position or situation |
parent | Previous node you came from |
action | Move taken to get here |
Visual Representation
[Current Node]
State = Mumbai
Parent = Pune
Action = Drive
Meaning:
I am currently in Mumbai.
I came from Pune.
I got here by driving.
Why This Is Powerful
A computer often explores many possibilities.
Without memory, it may know only where it is now.
With Node, it remembers the path.
Journey Example
Suppose you travel:
Pune → Mumbai → Surat → Ahmedabad
This can be stored like:
Ahmedabad
↑
Surat
↑
Mumbai
↑
Pune
Each city is linked to the previous one through parent.
The Code Explained
class Node():
Creates a blueprint for making nodes.
def __init__(self, state, parent, action):
Runs automatically when a new node is created.
self.state = state
Stores where you are now.
Examples:
- A city
- A chess board position
- A webpage
- A maze location
self.parent = parent
Stores the previous node.
This creates a chain.
self.action = action
Stores what move got you here.
Examples:
- Move left
- Drive
- Click link
- Jump knight
Graphic: How Parent Links Work
Goal Node
|
v
[Ahmedabad]
|
Parent
|
v
[Surat]
|
Parent
|
v
[Mumbai]
|
Parent
|
v
[Pune]
When goal is found, the program follows parents backward.
Real Use Cases
1. Maze Solving
Start → Right → Down → Left → Exit
Each move becomes a node.
When exit is found:
The program reconstructs the path.
2. Google Maps Style Routing
Pune → Mumbai → Nashik → Delhi
Every city can be a node.
Used to compute routes.
3. Chess & Games
Each board position = node.
Parent = previous move.
Action = move made.
Used in game AI.
4. Website Navigation
Find shortest clicks from homepage to checkout.
Each webpage = node.
Example in Python
start = Node("Pune", None, None)
mumbai = Node("Mumbai", start, "Drive")
surat = Node("Surat", mumbai, "Drive")
ahmedabad = Node("Ahmedabad", surat, "Drive")
Graphic of Above
[Pune]
↓ Drive
[Mumbai]
↓ Drive
[Surat]
↓ Drive
[Ahmedabad]
Why parent = None at Start?
The first node has no previous step.
So:
start = Node("Pune", None, None)
Means:
- Starting point
- No parent
- No action needed yet
Why This Matters in AI
This class is heavily used in:
- Breadth First Search (BFS)
- Depth First Search (DFS)
- A* Search
- Route Planning
- Robotics
- Puzzle Solvers
Without nodes, search becomes messy.
With nodes, search becomes organized.
Deep Insight
A node models this truth:
Every current state came from a previous decision.
That idea is central to planning and intelligence.
Beginner-Friendly Analogy
Imagine breadcrumbs in a forest.
Each breadcrumb says:
- You are here
- You came from there
- You walked this way
That is exactly what a node does.
Final Summary
class Node():
def __init__(self, state, parent, action):
self.state = state
self.parent = parent
self.action = action
This tiny class helps computers remember journeys, reconstruct paths, and solve complex problems intelligently.
Small code.
Massive impact.
Key Takeaway Graphic
Node = Current State + Previous Step + Action Taken
Want to Learn Next?
A perfect next topic would be:
StackFrontier vs QueueFrontier
These two classes decide how nodes are explored, and they power DFS vs BFS.
Discover more from Aiannum.com
Subscribe to get the latest posts sent to your email.

Leave a Reply