📖 Scenario: You are managing a list of daily tasks. Sometimes, you need to add a new task right in the middle of your current list to keep things balanced.
🎯 Goal: Build a program that inserts a new task exactly in the middle of an existing list of tasks.
📋 What You'll Learn
Create a vector called tasks with these exact strings: "Clean", "Cook", "Shop", "Read"
Create a variable called new_task and set it to the string "Exercise"
Insert new_task into tasks at the middle index
Print the tasks vector after insertion
💡 Why This Matters
🌍 Real World
Managing and updating lists of tasks, events, or items is common in apps like to-do lists, calendars, and shopping lists.
💼 Career
Understanding how to insert elements into arrays or lists is a fundamental skill for software developers working with data structures.
Progress0 / 4 steps
1
Create the initial tasks list
Create a vector called tasks with these exact strings: "Clean", "Cook", "Shop", "Read"
DSA Rust
Hint
Use vec![...] to create a vector with the given strings.
2
Add the new task variable
Create a variable called new_task and set it to the string "Exercise"
DSA Rust
Hint
Use let to create a variable and assign the string "Exercise".
3
Insert the new task at the middle index
Insert new_task into tasks at the middle index. Calculate the middle index as tasks.len() / 2 and use tasks.insert().
DSA Rust
Hint
Use tasks.len() / 2 to find the middle and tasks.insert(index, value) to insert.
4
Print the tasks after insertion
Print the tasks vector after insertion using println!("{:?}", tasks).
DSA Rust
Hint
Use println!("{:?}", tasks) to print the vector in debug format.
Practice
(1/5)
1. What does inserting an element at the middle index of an array mean?
easy
A. Adding a new element at the end of the array
B. Replacing the middle element with a new one
C. Adding a new element exactly in the center, shifting others right
D. Removing the middle element from the array
Solution
Step 1: Understand middle index insertion
Inserting at the middle means placing a new element at the center position, pushing existing elements to the right.
Step 2: Differentiate from other operations
Replacing or removing elements changes existing data, but insertion adds a new element without deletion.
Final Answer:
Adding a new element exactly in the center, shifting others right -> Option C
Quick Check:
Middle insertion means add and shift [OK]
Hint: Middle insertion adds element, shifts others right [OK]
Common Mistakes:
Thinking insertion replaces an element
Confusing insertion with removal
Assuming insertion always happens at end
2. Which Rust code correctly inserts the value 99 at the middle index of a vector named vec?
easy
A. vec.insert(vec.len() / 2, 99);
B. vec.push(99);
C. vec[vec.len() / 2] = 99;
D. vec.remove(vec.len() / 2); vec.push(99);
Solution
Step 1: Identify correct insertion method
Rust's insert method adds an element at a given index, shifting others right.
Step 2: Calculate middle index and apply insert
Using vec.len() / 2 gives the middle index; vec.insert places 99 there correctly.
Final Answer:
vec.insert(vec.len() / 2, 99); -> Option A
Quick Check:
Use insert with middle index [OK]
Hint: Use vec.insert(middle_index, value) to insert [OK]
Inserting 25 at index 2 shifts elements at and after index 2 right: 30 and 40 move right.
Final Answer:
[10, 20, 25, 30, 40] -> Option B
Quick Check:
Insert at middle shifts elements right [OK]
Hint: Middle index = length/2; insert shifts right [OK]
Common Mistakes:
Inserting at wrong index
Confusing insert with replace
Miscounting vector length
4. Identify the error in this Rust code that tries to insert 50 at the middle of vec:
let mut vec = vec![1, 2, 3, 4, 5];
let mid = vec.len() / 2;
vec[mid] = 50;
println!("{:?}", vec);
medium
A. Using assignment replaces element instead of inserting
B. vec.len() / 2 is incorrect middle index
C. vec is immutable, cannot modify
D. println! syntax is wrong
Solution
Step 1: Understand vec[mid] = 50;
This replaces the element at index mid instead of inserting a new one.
Step 2: Correct method is insert
To insert, use vec.insert(mid, 50); which shifts elements right.
Final Answer:
Using assignment replaces element instead of inserting -> Option A
Quick Check:
Assignment replaces, insert adds [OK]
Hint: Use insert() to add, not assignment [OK]
Common Mistakes:
Replacing element instead of inserting
Misunderstanding vector mutability
Incorrect println! usage
5. Given a vector vec = vec![5, 10, 15, 20, 25, 30], write Rust code to insert 17 exactly in the middle so that the vector remains sorted. What will be the vector after insertion?
hard
A. [5, 10, 15, 20, 25, 30, 12]
B. [5, 10, 15, 12, 20, 25, 30]
C. [12, 5, 10, 15, 20, 25, 30]
D. [5, 10, 15, 17, 20, 25, 30]
Solution
Step 1: Find middle index for insertion
Vector length is 6, middle index is 6 / 2 = 3.
Step 2: Insert 17 at index 3 to keep sorted order
Inserting 17 at index 3 shifts elements 20, 25, 30 right, keeping order.
Final Answer:
[5, 10, 15, 17, 20, 25, 30] -> Option D
Quick Check:
Insert 17 at middle index 3 to keep sorted [OK]
Hint: Insert at length/2 to keep sorted vector [OK]
Common Mistakes:
Inserting at wrong index breaking order
Appending instead of inserting
Replacing element instead of inserting
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.