Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Написать программу, содержащую процедуру, которая копирует в список

Михаил Басманов Ученик (98), открыт 6 дней назад
Для однонаправленного списка выполнить задание :
Написать программу, содержащую процедуру, которая копирует в список М за каждым вхождением заданного элемента все элемента списка М1.
5 ответов
максим майнкрафт Профи (870) 6 дней назад
а ты вообще не ашалел/
сам делай сам думай
ЧЕЛОВЕК ЧАЙНИК Мастер (1805) 6 дней назад
Я понимаю решить дз но... Программу... За это людям 150к платят, а то и больше, а тут бесплатно....
Михаил БасмановУченик (98) 6 дней назад
так это вузовская лаба
Андрей Пищур Гуру (4032) 6 дней назад
написать на чём?
Андрей ПищурГуру (4032) 6 дней назад
много букв. лень писать
Анонимус Просветленный (24790) 6 дней назад
 class Node: 
def __init__(self, data):
self.data = data
self.next = None

class LinkedList:
def __init__(self):
self.head = None

def append(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
return
last_node = self.head
while last_node.next:
last_node = last_node.next
last_node.next = new_node

def display(self):
current = self.head
while current:
print(current.data, end=" -> ")
current = current.next
print("None")

def insert_list_after_target(list_main, target_element, list_insert):
"""
Вставляет элементы из списка list_insert после каждого вхождения target_element в list_main.

Args:
list_main: Основной связанный список.
target_element: Элемент, после которого нужно вставить.
list_insert: Связанный список, элементы которого вставляем.
"""
current = list_main.head
while current:
if current.data == target_element:
insert_node = list_insert.head
while insert_node:
new_node = Node(insert_node.data)
new_node.next = current.next
current.next = new_node
current = new_node
insert_node = insert_node.next
current = current.next

# Создаем основной список
main_list = LinkedList()
main_list.append(1)
main_list.append(2)
main_list.append(3)
main_list.append(2)
main_list.append(4)
print("Исходный основной список:")
main_list.display()

# Создаем список для вставки
insert_list = LinkedList()
insert_list.append(5)
insert_list.append(6)
insert_list.append(7)
print("Список для вставки:")
insert_list.display()

# Вызываем функцию вставки после каждого вхождения "2"
insert_list_after_target(main_list, 2, insert_list)
print("Результат после вставки:")
main_list.display()
Николай Веселуха Высший разум (371675) 6 дней назад
 #include <algorithm> 
#include <iostream>
#include <forward_list>

using namespace std;

void show(const forward_list<int>& flst) {
for (auto x : flst) cout << x << ' ';
cout.put('\n');
}

void show(const initializer_list<int>& ilst) {
for (auto x : ilst) cout << x << ' ';
cout.put('\n');
}

void copy(forward_list<int>& m, const initializer_list<int>& m1, const int x) {
const auto finish = end(m);
auto it = find(begin(m), finish, x);
while (it != finish) {
auto tmp = next(it);
m.insert_after(it, m1);
it = find(tmp, finish, x);
}
}

int main() {
forward_list<int> m{ 3, 1, 2, 3, 1, 2, 3 };
show(m);
initializer_list<int> m1{ 4, 3, 2 };
show(m1);
constexpr auto x = 3;
copy(m, m1, x);
show(m);
}
Похожие вопросы