What is a key difference between an array and a linked list in terms of memory layout?
An array stores elements in contiguous memory locations, while a linked list stores elements in nodes scattered in memory, connected by pointers.
Click to reveal answer
beginner
When is it better to use a linked list over an array?
Use a linked list when you need frequent insertions and deletions in the middle of the collection, and you don't need fast random access.
Click to reveal answer
beginner
Why are arrays preferred when you need fast access to elements by index?
Because arrays store elements contiguously, accessing an element by index is fast and done in constant time (O(1)).
Click to reveal answer
intermediate
What is a disadvantage of arrays compared to linked lists when it comes to resizing?
Arrays have a fixed size, so resizing requires creating a new array and copying elements, which is costly. Linked lists can grow or shrink easily by changing pointers.
Click to reveal answer
intermediate
In which scenario would an array be a poor choice compared to a linked list?
When you have many insertions and deletions at unknown positions and the size changes frequently, arrays are poor because of costly resizing and shifting elements.
Click to reveal answer
Which data structure allows fast random access to elements by index?
ABoth are equally fast
BArray
CLinked List
DNeither supports random access
✗ Incorrect
Arrays store elements contiguously, so accessing by index is fast (O(1)). Linked lists require traversal.
Which data structure is better for frequent insertions and deletions in the middle?
ABoth are equally efficient
BArray
CLinked List
DNeither supports efficient middle insertions
✗ Incorrect
Linked lists can insert or delete nodes by changing pointers without shifting elements.
What is a disadvantage of arrays compared to linked lists?
ASlower access by index
BCannot store primitive types
CUses more memory per element
DFixed size and costly resizing
✗ Incorrect
Arrays have fixed size; resizing requires copying all elements to a new array.
Which data structure uses extra memory for storing pointers?
ALinked List
BNeither uses pointers
CBoth use pointers equally
DArray
✗ Incorrect
Linked list nodes store data plus pointers to next (and possibly previous) nodes.
If you need to access elements sequentially and insert frequently, which is better?
ALinked List
BArray
CEither works the same
DUse a stack instead
✗ Incorrect
Linked lists allow easy insertion and sequential access without shifting elements.
Explain when you would choose a linked list over an array and why.
Think about how memory and operations differ between arrays and linked lists.
You got /4 concepts.
Describe the main advantages and disadvantages of arrays compared to linked lists.
Consider memory layout and operation costs.
You got /5 concepts.
Practice
(1/5)
1. Which data structure is better when you need fast random access to elements by index?
easy
A. Array
B. Linked List
C. Stack
D. Queue
Solution
Step 1: Understand random access in arrays
Arrays store elements in contiguous memory, so accessing any element by index is fast and direct.
Step 2: Compare with linked list access
Linked lists require traversal from the head to reach an element, making random access slower.
Final Answer:
Array -> Option A
Quick Check:
Fast random access = Array [OK]
Hint: For fast index access, choose Array [OK]
Common Mistakes:
Thinking linked list supports fast random access
Confusing stack or queue with random access
Assuming linked list nodes are contiguous
2. Which of the following is the correct way to declare a linked list of integers in C#?
easy
A. List<int> list = new LinkedList<int>();
B. LinkedList<int> list = new LinkedList<int>();
C. LinkedList list = new List<int>();
D. List list = new LinkedList();
Solution
Step 1: Recall C# syntax for generic linked list
The correct syntax uses LinkedList<T> with type parameter and new LinkedList<T>() to create an instance.
Step 2: Check each option for correctness
LinkedList<int> list = new LinkedList<int>(); correctly declares and initializes a LinkedList<int>. Others mix types or omit generics.
Final Answer:
LinkedList<int> list = new LinkedList<int>(); -> Option B
Quick Check:
Correct generic linked list syntax = LinkedList<int> list = new LinkedList<int>(); [OK]
Hint: Use LinkedList<T> with new LinkedList<T>() [OK]
Common Mistakes:
Mixing List and LinkedList types
Omitting generic type parameter
Using non-generic LinkedList without type
3. What will be the output of the following C# code?
var list = new LinkedList<int>();
list.AddLast(10);
list.AddLast(20);
list.AddFirst(5);
foreach(var item in list) { Console.Write(item + " "); }
medium
A. 5 10 20
B. 10 20 5
C. 20 10 5
D. 5 20 10
Solution
Step 1: Trace linked list insertions
First, 10 is added at the end, then 20 at the end, so list is [10, 20]. Then 5 is added at the front, making list [5, 10, 20].
Step 2: Output the list elements in order
The foreach prints elements in order: 5, 10, 20 separated by spaces.
Final Answer:
5 10 20 -> Option A
Quick Check:
LinkedList order after AddFirst and AddLast = 5 10 20 [OK]
Hint: AddFirst puts element at start, AddLast at end [OK]
Common Mistakes:
Assuming AddLast adds at front
Confusing order of AddFirst and AddLast
Forgetting foreach prints in list order
4. Identify the error in this code snippet that tries to add an element at index 2 in a linked list:
var list = new LinkedList<int>();
list.AddLast(1);
list.AddLast(2);
list.AddLast(3);
list.Add(2, 99);
medium
A. AddLast requires index parameter
B. AddLast cannot be called multiple times
C. List must be initialized with size
D. LinkedList does not have Add method with index parameter
Solution
Step 1: Check LinkedList methods in C#
LinkedList<T> does not support Add with index; it only supports AddFirst, AddLast, or AddBefore/After nodes.
Step 2: Understand why Add(2, 99) causes error
Calling Add with two parameters is invalid for LinkedList; this method exists in List<T> but not LinkedList.
Final Answer:
LinkedList does not have Add method with index parameter -> Option D
Quick Check:
LinkedList Add with index = invalid [OK]
Hint: LinkedList uses AddFirst/AddLast, no index Add [OK]
Common Mistakes:
Using List methods on LinkedList
Assuming Add can take index in LinkedList
Confusing List<T> and LinkedList<T> APIs
5. You need to frequently insert and delete elements in the middle of a large collection. Which data structure is more efficient and why?
hard
A. Array, because it uses less memory
B. Array, because it allows fast random access
C. Linked List, because it allows fast insertions and deletions without shifting elements
D. Linked List, because it stores elements contiguously
Solution
Step 1: Analyze insertion and deletion in arrays
Arrays require shifting elements after insertion or deletion in the middle, which is slow for large collections.
Step 2: Analyze linked list behavior
Linked lists can insert or delete nodes by changing pointers without shifting, making these operations faster in the middle.
Final Answer:
Linked List, because it allows fast insertions and deletions without shifting elements -> Option C
Quick Check:
Fast middle insert/delete = Linked List [OK]
Hint: For frequent middle changes, choose Linked List [OK]
Common Mistakes:
Choosing array for fast middle insert/delete
Thinking linked list stores elements contiguously
Ignoring cost of shifting in arrays
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.