← Back to list

Tree

Tree: is a Non-linear Data structure

Emad Mohamed · 2026-05-28 07:45 · 8 claps · 2.6 min read
#trees #fb #data-structures
Open on Medium ↗
Wiki topics: 💻 · Programming

Tree

Tree: is a Non-linear Data structure

-Linear vs Non-Linear DS :

-What is a Tree?

-Tree Definitions :

-Tree Implementation :

-Breadth First Traversal : or level by level

-Breadth First Traversal or Breadth First Search BFS

Started from the root. Then print each level

So output : 0 1 2 3 4 5 6

Breadth First Traversal pseudo code :

Here we will use the queue

Example :

Dequeue(0) then push to queue the children of 0 = 1 2 3

Dequeue(1) then push to queue the children of 1 = 4 5

In the final, we get :

JS code that explains BFS :

// 1. Definition of a Tree Node
class Node {
    constructor(value) {
        this.value = value;
        this.left = null;   // Left child
        this.right = null;  // Right child
    }
}

// 2. The BFS Function (Using a Queue)
function breadthFirstSearch(root) {
    // Base Case: If the tree is empty, just stop
    if (root === null) return;

    // Step A: Initialize an empty queue and add the root node
    const queue = [];
    queue.push(root);

    // Step B: Loop as long as the queue is not empty
    while (queue.length > 0) {
        // 1. Remove the front node from the queue to process it
        const currentNode = queue.shift(); 
        console.log(`Visited Node: ${currentNode.value}`);

        // 2. If the current node has a left child, push it to the queue
        if (currentNode.left !== null) {
            queue.push(currentNode.left);
        }

        // 3. If the current node has a right child, push it to the queue
        if (currentNode.right !== null) {
            queue.push(currentNode.right);
        }
    }
}

// --- Testing the BFS Algorithm ---

// 3. Building the exact same Binary Tree
//        1
//       / \
//      2   3
//     / \
//    4   5

const root = new Node(1);
root.left = new Node(2);
root.right = new Node(3);
root.left.left = new Node(4);
root.left.right = new Node(5);

// 4. Run BFS
console.log("--- Starting BFS Traversal ---");
breadthFirstSearch(root);
console.log("------------------------------");

output :

--- Starting BFS Traversal ---
Visited Node: 1
Visited Node: 2
Visited Node: 3
Visited Node: 4
Visited Node: 5
------------------------------

메타데이터
post_id
7eb00ee56ef9
slug
tree-7eb00ee56ef9
url
https://medium.com/@emad-mohamed/tree-7eb00ee56ef9
canonical_url
https://medium.com/@emad-mohamed/tree-7eb00ee56ef9
author_url
https://medium.com/@emad-mohamed
status
ok
fetched_at
2026-06-09 21:21:26