We use array traversal to look at or use each item in a list one by one. It helps us check or change all items easily.
Array traversal in C++
class ArrayTraversal { public: int* array; int size; ArrayTraversal(int* input_array, int input_size) { array = input_array; size = input_size; } void traverse() { for (int index = 0; index < size; index++) { // Access array[index] here } } };
The class holds the array and its size.
The traverse() method uses a for loop to visit each item by its index.
int numbers[] = {}; int size = 0; ArrayTraversal traversal(numbers, size); traversal.traverse();
int numbers[] = {42}; int size = 1; ArrayTraversal traversal(numbers, size); traversal.traverse();
int numbers[] = {10, 20, 30, 40}; int size = 4; ArrayTraversal traversal(numbers, size); traversal.traverse();
This program creates an array of 5 numbers. It then creates an ArrayTraversal object with this array and its size. The traverse() method prints each element with its index.
#include <iostream> class ArrayTraversal { public: int* array; int size; ArrayTraversal(int* input_array, int input_size) { array = input_array; size = input_size; } void traverse() { std::cout << "Array elements:" << std::endl; for (int index = 0; index < size; index++) { std::cout << "Element at index " << index << ": " << array[index] << std::endl; } } }; int main() { int numbers[] = {5, 10, 15, 20, 25}; int size = sizeof(numbers) / sizeof(numbers[0]); ArrayTraversal traversal(numbers, size); std::cout << "Before traversal:" << std::endl; traversal.traverse(); return 0; }
Time complexity is O(n) because we visit each element once.
Space complexity is O(1) extra space since we only use a few variables.
Common mistake: Using wrong loop limits causing out-of-bounds errors.
Use array traversal when you need to process every item. For searching, you might stop early if found.
Array traversal means visiting each item in order.
Use a for loop with an index from 0 to size-1.
It helps to read, print, or change all items in the array.
Practice
Solution
Step 1: Understand the term 'array traversal'
Array traversal means going through each element in the array in sequence.Step 2: Match the definition to the options
Visiting each element of the array one by one correctly describes visiting each element one by one.Final Answer:
Visiting each element of the array one by one -> Option AQuick Check:
Array traversal = visiting elements in order [OK]
- Confusing traversal with sorting
- Thinking traversal means deleting elements
- Mixing traversal with copying arrays
arr of size n in C++?Solution
Step 1: Identify valid index range for array traversal
Array indices in C++ start at 0 and go up to n-1, so loop should run from 0 to less than n.Step 2: Check each option's loop condition
for(int i = 0; i < n; i++) { /* access arr[i] */ } uses i from 0 to i < n, which is correct. Others either start at 1 or go out of bounds.Final Answer:
for(int i = 0; i < n; i++) { /* access arr[i] */ } -> Option DQuick Check:
Loop from 0 to n-1 = correct traversal [OK]
- Starting loop at 1 instead of 0
- Using <= n causing out-of-bounds access
- Decrementing loop without correct index
int arr[] = {2, 4, 6};
for(int i = 0; i < 3; i++) {
std::cout << arr[i] << " ";
}Solution
Step 1: Understand the loop and array elements
The array has elements 2, 4, 6 at indices 0, 1, 2. The loop runs from i=0 to i=2.Step 2: Print elements in order
Each iteration prints arr[i] followed by a space: 2, then 4, then 6.Final Answer:
2 4 6 -> Option CQuick Check:
Print elements in order = 2 4 6 [OK]
- Expecting extra zero at end
- Printing elements in reverse order
- Confusing array indices with values
int arr[4] = {1, 2, 3, 4};
for(int i = 0; i <= 4; i++) {
std::cout << arr[i] << " ";
}Solution
Step 1: Check loop condition against array size
The array has size 4, valid indices are 0 to 3. Loop runs while i <= 4, which includes i=4 (out of bounds).Step 2: Correct the loop condition
Change condition to i < 4 to avoid accessing arr[4] which is invalid.Final Answer:
Loop condition should be i < 4, not i <= 4 -> Option AQuick Check:
Loop must stay within 0 to size-1 [OK]
- Using <= instead of < causing out-of-bounds
- Starting loop at 1 instead of 0
- Increasing array size unnecessarily
arr of size n, which code snippet correctly calculates the sum of all elements using array traversal?Solution
Step 1: Initialize sum and loop correctly
Sum should start at 0. Loop must run from i=0 to i < n to include all elements.Step 2: Check each option for correctness
int sum = 0; for(int i = 0; i < n; i++) { sum += arr[i]; } initializes sum to 0 and loops correctly. Others either start sum wrong or loop out of bounds.Final Answer:
int sum = 0; for(int i = 0; i < n; i++) { sum += arr[i]; } -> Option BQuick Check:
Sum all elements from index 0 to n-1 [OK]
- Starting sum with arr[0] and looping incorrectly
- Looping with i <= n causing out-of-bounds
- Skipping first element by starting at i=1
Ready to prove it?
Pass the test and this pattern moves unknown
