Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### **Задачи на `std::list`**
- #### **Задача 1: Добавление элементов в начало и конец списка**
- **Условие:** Напишите функцию, которая добавляет элементы в начало и конец списка.
- #include <iostream>
- #include <list>
- // Функция для добавления элементов
- int main() {
- std::list<int> numbers = {2, 3};
- addElements(numbers, 1, 4);
- for (const auto& value : numbers) {
- std::cout << value << " "; // Вывод: 1 2 3 4
- }
- return 0;
- }
- ---
- #### **Задача 2: Удаление первого и последнего элементов**
- **Условие:** Напишите функцию, которая удаляет первый и последний элементы списка.
- #include <iostream>
- #include <list>
- // Функция для удаления элементов
- int main() {
- std::list<int> numbers = {1, 2, 3, 4};
- removeFirstAndLast(numbers);
- for (const auto& value : numbers) {
- std::cout << value << " "; // Вывод: 2 3
- }
- return 0;
- }
- ---
- #### **Задача 3: Переворот списка**
- **Условие:** Напишите функцию, которая переворачивает список.
- #include <iostream>
- #include <list>
- // Функция для переворота списка
- int main() {
- std::list<int> numbers = {1, 2, 3, 4};
- reverseList(numbers);
- for (const auto& value : numbers) {
- std::cout << value << " "; // Вывод: 4 3 2 1
- }
- return 0;
- }
- ---
- #### **Задача 4: Сортировка списка**
- **Условие:** Напишите функцию, которая сортирует список.
- #include <iostream>
- #include <list>
- // Функция для сортировки списка
- int main() {
- std::list<int> numbers = {4, 2, 5, 1, 3};
- sortList(numbers);
- for (const auto& value : numbers) {
- std::cout << value << " "; // Вывод: 1 2 3 4 5
- }
- return 0;
- }
- ---
- #### **Задача 5: Удаление дубликатов из списка**
- **Условие:** Напишите функцию, которая удаляет дубликаты из списка.
- #include <iostream>
- #include <list>
- #include <unordered_set>
- // Функция для удаления дубликатов
- int main() {
- std::list<int> numbers = {1, 2, 2, 3, 4, 4, 5};
- removeDuplicates(numbers);
- for (const auto& value : numbers) {
- std::cout << value << " "; // Вывод: 1 2 3 4 5
- }
- return 0;
- }
- ---
- #### **Задача 6: Объединение двух списков**
- **Условие:** Напишите функцию, которая объединяет два списка.
- #include <iostream>
- #include <list>
- // Функция для объединения списков
- int main() {
- std::list<int> list1 = {1, 2, 3};
- std::list<int> list2 = {4, 5, 6};
- mergeLists(list1, list2);
- for (const auto& value : list1) {
- std::cout << value << " "; // Вывод: 1 2 3 4 5 6
- }
- return 0;
- }
- ---
- #### **Задача 7: Поиск максимального элемента**
- **Условие:** Напишите функцию, которая находит максимальный элемент в списке.
- #include <iostream>
- #include <list>
- // Функция для поиска максимального элемента
- int main() {
- std::list<int> numbers = {1, 5, 3, 4, 2};
- std::cout << "Max: " << findMax(numbers) << "\n"; // Вывод: Max: 5
- return 0;
- }
- ---
- #### **Задача 8: Удаление всех чётных чисел**
- **Условие:** Напишите функцию, которая удаляет все чётные числа из списка.
- #include <iostream>
- #include <list>
- // Функция для удаления чётных чисел
- int main() {
- std::list<int> numbers = {1, 2, 3, 4, 5, 6};
- removeEvens(numbers);
- for (const auto& value : numbers) {
- std::cout << value << " "; // Вывод: 1 3 5
- }
- return 0;
- }
- ---
- #### **Задача 9: Проверка наличия элемента**
- **Условие:** Напишите функцию, которая проверяет, содержится ли элемент в списке.
- #include <iostream>
- #include <list>
- // Функция для проверки наличия элемента
- int main() {
- std::list<int> numbers = {1, 2, 3, 4, 5};
- std::cout << std::boolalpha;
- std::cout << "Contains 3? " << contains(numbers, 3) << "\n"; // Вывод: Contains 3? true
- return 0;
- }
- ---
- #### **Задача 10: Разделение списка на два**
- **Условие:** Напишите функцию, которая разделяет список на два: с чётными и нечётными числами.
- #include <iostream>
- #include <list>
- // Функция для разделения списка
- int main() {
- std::list<int> numbers = {1, 2, 3, 4, 5, 6};
- std::list<int> evens, odds;
- splitList(numbers, evens, odds);
- std::cout << "Evens: ";
- for (const auto& value : evens) {
- std::cout << value << " "; // Вывод: Evens: 2 4 6
- }
- std::cout << "\nOdds: ";
- for (const auto& value : odds) {
- std::cout << value << " "; // Вывод: Odds: 1 3 5
- }
- return 0;
- }
- ---
- ### **Задачи на `std::stack`**
- #### **Задача 1: Базовые операции со стеком**
- **Условие:** Напишите функцию, которая добавляет элементы в стек и выводит их.
- #include <iostream>
- #include <stack>
- // Функция для работы со стеком
- int main() {
- stackOperations();
- return 0;
- }
- ```
- ---
- #### **Задача 2: Проверка пустоты стека**
- **Условие:** Напишите функцию, которая проверяет, пуст ли стек.
- #include <iostream>
- #include <stack>
- // Функция для проверки пустоты
- int main() {
- std::stack<int> stack;
- std::cout << std::boolalpha;
- std::cout << "Is empty? " << isEmpty(stack) << "\n"; // Вывод: Is empty? true
- stack.push(1);
- std::cout << "Is empty? " << isEmpty(stack) << "\n"; // Вывод: Is empty? false
- return 0;
- }
- ---
- #### **Задача 3: Вычисление суммы элементов стека**
- **Условие:** Напишите функцию, которая вычисляет сумму элементов стека.
- #include <iostream>
- #include <stack>
- // Функция для вычисления суммы
- int main() {
- std::stack<int> stack;
- stack.push(1);
- stack.push(2);
- stack.push(3);
- std::cout << "Sum: " << sumStack(stack) << "\n"; // Вывод: Sum: 6
- return 0;
- }
- ---
- #### **Задача 4: Проверка корректности скобок**
- **Условие:** Напишите функцию, которая проверяет, корректно ли расставлены скобки.
- #include <iostream>
- #include <stack>
- #include <string>
- // Функция для проверки скобок
- int main() {
- std::string str = "{[()]}";
- std::cout << std::boolalpha;
- std::cout << "Is valid? " << isValidParentheses(str) << "\n"; // Вывод: Is valid? true
- return 0;
- }
- ---
- #### **Задача 5: Обратный порядок элементов**
- **Условие:** Напишите функцию, которая переворачивает массив с помощью стека.
- #include <iostream>
- #include <stack>
- #include <vector>
- // Функция для переворота массива
- int main() {
- std::vector<int> arr = {1, 2, 3, 4};
- std::vector<int> reversed = reverseArray(arr);
- for (int value : reversed) {
- std::cout << value << " "; // Вывод: 4 3 2 1
- }
- return 0;
- }
- ---
- #### **Задача 6: Проверка палиндрома**
- **Условие:** Напишите функцию, которая проверяет, является ли строка палиндромом, используя стек.
- #include <iostream>
- #include <stack>
- #include <string>
- // Функция для проверки палиндрома
- int main() {
- std::string str = "level";
- std::cout << std::boolalpha;
- std::cout << "Is palindrome? " << isPalindrome(str) << "\n"; // Вывод: Is palindrome? true
- return 0;
- }
- ---
- #### **Задача 7: Удаление элементов до определённого значения**
- **Условие:** Напишите функцию, которая удаляет элементы из стека до определённого значения.
- #include <iostream>
- #include <stack>
- // Функция для удаления элементов
- int main() {
- std::stack<int> stack;
- stack.push(1);
- stack.push(2);
- stack.push(3);
- stack.push(4);
- removeUntil(stack, 3);
- while (!stack.empty()) {
- std::cout << stack.top() << " "; // Вывод: 3
- stack.pop();
- }
- return 0;
- }
- ---
- #### **Задача 8: Минимальный элемент в стеке**
- **Условие:** Напишите функцию, которая находит минимальный элемент в стеке.
- #include <iostream>
- #include <stack>
- // Функция для поиска минимума
- int main() {
- std::stack<int> stack;
- stack.push(5);
- stack.push(3);
- stack.push(8);
- std::cout << "Min: " << findMin(stack) << "\n"; // Вывод: Min: 3
- return 0;
- }
- ---
- #### **Задача 9: Объединение двух стеков**
- **Условие:** Напишите функцию, которая объединяет два стека в один.
- #include <iostream>
- #include <stack>
- // Функция для объединения стеков
- int main() {
- std::stack<int> stack1;
- stack1.push(1);
- stack1.push(2);
- std::stack<int> stack2;
- stack2.push(3);
- stack2.push(4);
- std::stack<int> merged = mergeStacks(stack1, stack2);
- while (!merged.empty()) {
- std::cout << merged.top() << " "; // Вывод: 4 3 2 1
- merged.pop();
- }
- return 0;
- }
- ---
- #### **Задача 10: Проверка сбалансированности стека**
- **Условие:** Напишите функцию, которая проверяет, содержит ли стек только положительные числа.
- #include <iostream>
- #include <stack>
- // Функция для проверки сбалансированности
- int main() {
- std::stack<int> stack;
- stack.push(1);
- stack.push(2);
- stack.push(-3);
- std::cout << std::boolalpha;
- std::cout << "Is positive? " << isPositive(stack) << "\n"; // Вывод: Is positive? false
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment