Tree vs Array vs Linked List When Hierarchy Matters
📖 Scenario: Imagine you are organizing a company's employee structure. Each employee can have subordinates, forming a hierarchy. You want to represent this hierarchy in different ways to understand how data structures like arrays, linked lists, and trees work when hierarchy matters.
🎯 Goal: You will create three data structures to represent the same employee hierarchy: an array of employees, a linked list of employees, and a tree of employees. Then, you will write code to display the hierarchy clearly.
📋 What You'll Learn
Create an array called employeesArray with employee names in order
Create a linked list called employeesLinkedList representing the same employees
Create a tree called employeesTree representing the hierarchy with subordinates
Write code to print the array, linked list, and tree hierarchy
💡 Why This Matters
🌍 Real World
Organizing company employees, file systems, or categories often needs hierarchical data structures like trees.
💼 Career
Understanding arrays, linked lists, and trees helps in software development, especially in building user interfaces, databases, and organizational tools.
Progress0 / 4 steps
1
Create an array of employees
Create an array called employeesArray with these exact employee names in order: 'CEO', 'Manager', 'Team Lead', 'Developer', 'Intern'.
DSA Javascript
Hint
Use square brackets [] to create an array and put the employee names as strings inside.
2
Create a linked list of employees
Create a linked list by defining a class called Node with properties name and next. Then create nodes for each employee in this order: 'CEO', 'Manager', 'Team Lead', 'Developer', 'Intern'. Link them so that CEO points to Manager, and so on. Store the head node in a variable called employeesLinkedList.
DSA Javascript
Hint
Create a Node class with name and next. Then create nodes and link them by setting next properties.
3
Create a tree representing the employee hierarchy
Create an object called employeesTree representing the hierarchy: CEO is the root with one child Manager. Manager has one child Team Lead. Team Lead has two children: Developer and Intern. Use the property name for employee name and subordinates as an array of child nodes.
DSA Javascript
Hint
Use nested objects with name and subordinates arrays to build the tree hierarchy.
4
Print the array, linked list, and tree hierarchy
Write code to print the employeesArray as a string joined by ' -> '. Then print the linked list starting from employeesLinkedList by traversing nodes and joining names with ' -> '. Finally, write a recursive function called printTree that prints the employeesTree hierarchy with indentation for subordinates. Call printTree(employeesTree, 0) to display the tree.
DSA Javascript
Hint
Use join(' -> ') for array, a while loop for linked list, and a recursive function with indentation for the tree.
Practice
(1/5)
1. Which data structure is best suited to represent a family tree where each person can have multiple children?
easy
A. Stack
B. Array
C. Linked List
D. Tree
Solution
Step 1: Understand the hierarchy requirement
A family tree has a parent-child relationship with multiple children per parent, which is a hierarchical structure.
Step 2: Match data structure to hierarchy
Trees naturally represent hierarchical data with nodes and branches, allowing multiple children per node.
Final Answer:
Tree -> Option D
Quick Check:
Hierarchy with multiple children = Tree [OK]
Hint: Hierarchy with multiple children? Use Tree [OK]
Common Mistakes:
Choosing Array which is linear, not hierarchical
Choosing Linked List which supports only one next node
Confusing Stack with hierarchical structure
2. Which of the following is the correct way to declare a linked list node in JavaScript?
easy
A. const node = { value: 5, next: null };
B. const node = [5, null];
C. const node = new Array(5, null);
D. const node = { next: 5, value: null };
Solution
Step 1: Understand linked list node structure
A linked list node typically has a value and a pointer to the next node (next).
Step 2: Check each option for correct syntax
const node = { value: 5, next: null }; correctly uses an object with 'value' and 'next' keys. Others either use arrays or swap keys incorrectly.