С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/40: Рейтинг темы: голосов - 40, средняя оценка - 4.63
4 / 4 / 5
Регистрация: 12.11.2016
Сообщений: 107

Создать двунаправленный список из целых чисел

27.05.2017, 23:03. Показов 8424. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна помощь!
Создать двунаправленный список из целых чисел. Удалить из списка элемент после каждого элемента, равного 4. Вставить число 0 перед каждым числом 1.
Заранее спасибо!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.05.2017, 23:03
Ответы с готовыми решениями:

Сформировать двунаправленный список целых чисел
Сформировать двунаправленный список целых чисел. Удалить из списка все четные числа. Вывести на экран список в обоих направлениях. ...

Сформировать упорядоченный двунаправленный список целых чисел
1. Сформировать упорядоченный двунаправленный список целых чисел. Включить в список новый элемент , не нарушив его упорядоченность. Вывести...

Создать список целых чисел. Создать новый список, записав в него отрицательные элементы
Создать список целых чисел. Создать новый список, записав в него отрицательные элементы.(задачу нужно решить 3-мя способами- стек, очередь,...

2
 Аватар для Геомеханик
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
28.05.2017, 10:45
Лучший ответ Сообщение было отмечено Sawa121212 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <iostream>
 
struct node {
    node* prev;
    node* next;
    int   val;
    node(int v):prev(NULL), next(NULL), val(v){}
};
 
typedef struct {
    node* head, *tail;
} list_t;
 
void  list_init(list_t* lst){ lst->head = lst->tail = NULL; }
void  list_copy(list_t* lst, const int* a, int n);
node* list_erase(list_t* lst, node* pos);
node* list_insert_before(list_t* lst, node* pos, int val);
void  list_clear(list_t* lst);
 
int main(void){
    list_t lst;
    int a[] = { 4, -4, 1, 1, 1, 1, 4, 7, 4, 8, 4, 9, 1, 1, 4, -9 };
    list_init(&lst);
    list_copy(&lst, a, sizeof(a)/sizeof(a[0]));
 
    //Удалить из списка элемент после каждого элемента, равного 4
    node* p = lst.head;
    while(p != NULL){
        if((p->val == 4) && (p->next != NULL))
            p = list_erase(&lst, p->next);
        else
            p = p->next;
    }
 
    //Вставить число 0 перед каждым числом 1
    for(p = lst.head; p != NULL; p = p->next){
        if(p->val == 1)
            p = list_insert_before(&lst, p, 0);
    }
 
    //вывод
    for(const node* x = lst.head; x != NULL; x = x->next)
        std::cout << x->val << ' ';
    std::cout << std::endl;
 
    for(const node* y = lst.tail; y != NULL; y = y->prev)
        std::cout << y->val << ' ';
    std::cout << std::endl;
 
    list_clear(&lst);
    std::cin.get();
    return 0;
}
 
//копирование массива
void list_copy(list_t* lst, const int* a, int n){
    node* p;
    list_init(lst);
    for(int i = 0; i < n; ++i){
        p = new node(a[i]);
 
        if(lst->head == NULL)
            lst->head = lst->tail = p;
        else {
            p->prev = lst->tail;
            lst->tail->next = p;
            lst->tail = p;
        }
    }
}
 
//удаление
node* list_erase(list_t* lst, node* pos){
    node* p = pos->next;
    if(pos == lst->head){
        lst->head = lst->head->next;
        if(lst->head == NULL)
            lst->tail = NULL;
        else
            lst->head->prev = NULL;
    } else if(pos == lst->tail){
        lst->tail = lst->tail->prev;
        lst->tail->next = NULL;
    } else {
        pos->prev->next = pos->next;
        pos->next->prev = pos->prev;
    }
    delete pos;
    return p;
}
 
//вставка перед pos
node* list_insert_before(list_t* lst, node* pos, int val){
    node* p = new node(val);
    if(pos == lst->head){
        lst->head->prev = p;
        p->next   = lst->head;
        lst->head = p;
    } else {
        p->next = pos;
        p->prev = pos->prev;
 
        pos->prev->next = p;
        pos->prev = p;
    }
    return pos;
}
 
//удаление всех
void list_clear(list_t* lst){
    node* t;
    while(lst->head != NULL){
        t = lst->head;
        lst->head = lst->head->next;
        delete t;
    }
    lst->tail = NULL;
}
0
4 / 4 / 5
Регистрация: 12.11.2016
Сообщений: 107
30.05.2017, 16:58  [ТС]
Спасибо!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.05.2017, 16:58
Помогаю со студенческими работами здесь

Создать линейный однонаправленный список из целых чисел
Создать линейный однонаправленный список из целых чисел. Определить среднее арифметическое значений элементов списка, кратных 4. ...

Создать динамический список из случайных целых чисел?
Создать динамический список из случайных целых чисел (от -30 до +30), поменять местами элементы, содержащие максимальное и минимальное...

Создать однонаправленный кольцевой список целых чисел
Помогите написать программу (СРОЧНО)!!! Тип списка:Однонаправленный кольцевой Элемент списка: целое Создать список из...

Массив целых чисел, двунаправленный список
Дан массив целых чисел. Поместить все элементы этого массива в двунаправленный список . Вывести все одинаковые элементы в порядке...

Сформировать двунаправленный связанный список (стек), содержащий последовательность целых чисел
Сформировать двунаправленный связанный список (стек), содержащий последовательность целых чисел, вводимых из файла. Даны и два целых числа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru