Junior — Middle
What are the main differences between a linked list and an array in data organization and access?
sobes.tech AI
Answer from AI
Main differences between a linked list and an array:
-
Data organization:
- An array is a contiguous block of memory where elements are stored sequentially.
- A linked list consists of nodes, each containing data and a reference to the next (and/or previous) element.
-
Access to elements:
- In an array, access to an element by index occurs in constant time O(1).
- In a linked list, accessing an element requires traversing links from the beginning, which takes O(n).
-
Resizing:
- A fixed-size array (in static languages), resizing requires allocating a new block and copying data.
- A linked list dynamically expands, making it easy to insert and delete elements without shifting.
Example in Dart (Flutter):
// Array
List<int> array = [1, 2, 3];
print(array[1]); // Fast access
// Simplified linked list
class Node {
int value;
Node? next;
Node(this.value);
}
Node head = Node(1);
head.next = Node(2);
head.next!.next = Node(3);
// Accessing the second element requires traversal
Node? current = head;
for (int i = 0; i < 1; i++) {
current = current?.next;
}
print(current?.value);