0
0
DSA Javascriptprogramming~20 mins

Tree vs Array vs Linked List When Hierarchy Matters in DSA Javascript - Compare & Choose

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Hierarchy Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of Traversing a Simple Tree Structure
Consider the following JavaScript code that represents a simple tree using nested objects. What will be the output when we print the names in preorder traversal?
DSA Javascript
const tree = {
  name: 'root',
  children: [
    { name: 'child1', children: [] },
    { name: 'child2', children: [
      { name: 'grandchild1', children: [] }
    ] }
  ]
};

function preorder(node) {
  let result = [];
  result.push(node.name);
  for (const child of node.children) {
    result = result.concat(preorder(child));
  }
  return result;
}

console.log(preorder(tree).join(' -> ') + ' -> null');
Aroot -> child1 -> child2 -> grandchild1 -> null
Broot -> child2 -> grandchild1 -> child1 -> null
Cchild1 -> root -> child2 -> grandchild1 -> null
Droot -> grandchild1 -> child1 -> child2 -> null
Attempts:
2 left
💡 Hint
Think about visiting the root first, then each child from left to right.
Predict Output
intermediate
2:00remaining
Linked List vs Array for Hierarchical Data
Given a linked list and an array representing the same sequence of nodes, which output correctly shows the linked list traversal?
DSA Javascript
class Node {
  constructor(value) {
    this.value = value;
    this.next = null;
  }
}

const head = new Node('A');
head.next = new Node('B');
head.next.next = new Node('C');

let current = head;
let output = '';
while (current) {
  output += current.value + ' -> ';
  current = current.next;
}
output += 'null';
console.log(output);
AA -> B -> C -> null
BA, B, C
C[A, B, C]
Dnull -> C -> B -> A
Attempts:
2 left
💡 Hint
Linked list traversal prints nodes followed by arrows ending with null.
🧠 Conceptual
advanced
2:00remaining
Why Use Trees Over Arrays for Hierarchical Data?
Which of the following is the best reason to use a tree data structure instead of a simple array when representing hierarchical data?
AArrays use less memory than trees for hierarchical data.
BArrays can only store numbers, trees can store any data.
CTrees are always faster to traverse than arrays.
DTrees allow representing parent-child relationships naturally, while arrays do not.
Attempts:
2 left
💡 Hint
Think about how hierarchy and relationships are stored.
🔧 Debug
advanced
2:00remaining
Identify the Error in Linked List Insertion Code
What error will the following code produce when trying to insert a new node at the end of a linked list?
DSA Javascript
class Node {
  constructor(value) {
    this.value = value;
    this.next = null;
  }
}

function insertAtEnd(head, value) {
  let newNode = new Node(value);
  let current = head;
  while (current.next) {
    current = current.next;
  }
  current.next = newNode;
  return head;
}

let head = null;
head = insertAtEnd(head, 'A');
AReferenceError: head is not defined
BNo error, linked list updated correctly
CTypeError: Cannot read property 'next' of null
DSyntaxError: Unexpected token"
Attempts:
2 left
💡 Hint
Check what happens when head is null at the start.
🚀 Application
expert
3:00remaining
Choosing Data Structure for File System Hierarchy
You need to design a data structure to represent a file system hierarchy where folders can contain files and other folders. Which data structure is the best choice and why?
ALinked List, because it is simple and uses less memory than trees.
BTree, because it naturally models nested folders and files with parent-child relationships.
CHash Map, because it stores key-value pairs for file names and contents.
DArray, because it allows fast random access to files and folders.
Attempts:
2 left
💡 Hint
Think about how folders contain other folders and files inside them.