Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Получить словесное наименование оценок по разным системам (5-ти, 12-ти, 100-бальной и буквенной) https://www.cyberforum.ru/ cpp-beginners/ thread1762873.html
Написать программу, позволяющую получить словесное наименование школьных оценок: отл., хорошо, удовл., неуд. (по пятибалльной, 12-бальной, 100-бальной и буквенной (A-F)). Очень прошу, кто может помочь правильно прописать эту программу - помогите. Реально уже вожусь с ней несколько дней и не знаю как прописать. У меня получилось только так, но естественно ничего не работает. #include <iostream>...
Как реализовать ручной инпут?(Воид функции) C++
Доброго времени суток и прошу прощения за грубый заголовок, нужна помощь с выполнением задания. Оригинально задание сделано для выполнения на Делфи и звучит так: Используя процедуры составить программу для выполнения задания: Дана матрица А{i,j}, где i,j = 1, 2, 3... n. Создать программу формирования вектора B = (b1, b2, b3 ... bn), элементы которого являются суммой минусовых или...
C++ Реализовать класс String https://www.cyberforum.ru/ cpp-beginners/ thread1762845.html
Здравствуйте! Что-то не задается у меня ООП. Поэтому прошу помочь с мелкой задачкой. Реализовать класс String который содержит: Конструкторы: - по умолчанию - копирования - String(char* str) инициализирует экземпляр String си -строкой - String(charsimbol, intsize) создает строку из size элементов и заполняет ее символами symbol Начинаю плыть уже с конструктора копирования. Почитал на...
C++ Разработать классы для работы со строками Прошу помощи для "особо одаренных")). Учусь на программиста заочно (хотя в договоре вечернее). Теорию дают классно, но практики нет. Примеров мало разбираем. Без разбора примеров трудно идет С++. Есть четыре задачи. Прошу помощи в их решении или указании ссылок с примерами. 4) Разработать классы: для работы со строками. Предусмотреть такие функции как сложение строк, копирование, поиск элемента,... https://www.cyberforum.ru/ cpp-beginners/ thread1762844.html
C++ Работа с бинарными файлами
Дан бинарный файл вещественных чисел, содержащий координаты точек на плоскости. Создать новый бинарный файл, содержащий координаты вершин прямоугольников, охватывающих подмножества точек из исходного файла, лежащих в различных координатных углах. При отсутствии точек в каком-либо квадранте, охватывающий прямоугольник записывать не следует. Точки, лежащие на координатных осях нужно...
C++ Определить название игральной карты и название масти https://www.cyberforum.ru/ cpp-beginners/ thread1762803.html
Написать программу, в которой мастям игральных карт условно присвоены следующие порядковые номера масти : "пики" – 1, "трефы" – 2, "бубны" – 3, "черви" – 4, а достоинству карт: "валету" – 11, "даме" – 12, "королю" – 13, "тузу" – 14 (порядковые номера карт остальных достоинств соответствуют их названиям). По заданному пользователем номеру масти m (1<=m<=4) и номеру достоинства карты k...
C++ Найти все трехзначные числа в файле https://www.cyberforum.ru/ cpp-beginners/ thread1762799.html
найти все трехзначные числа из текста(файла) и записать их в другой файл. текст состоит не только из цифр.
C++ Линейное однородное уравнение
y'=y/3*x - y/y^2
C++ Нужна простая программа на наследование, конструктор, деструктор https://www.cyberforum.ru/ cpp-beginners/ thread1762727.html
Помогите кто с кодом. Нужна простенькая программка чтобы был класс, наследование, конструктор, диструктор
C++ Во введенном слове подсчитать количество различных пар букв https://www.cyberforum.ru/ cpp-beginners/ thread1762707.html
Во введенном слове подсчитать количество различных пар букв. Например, в слове babacabacd 5 различных пар букв, ba – 3 пары, ac – 2 пары. Написать и протестировать функцию compress(), которая сжимает массив, удаляя из него элементы равные числу, введенному с клавиатуры.
C++ Определить количество строк матрицы, не содержащих ни одного нулевого элемента
Ввести с клавиатуры вещественную матрицу размерностью 5х5. Определить количество строк, не содержащих ни одного нулевого элемента. помогите пж
C++ Строка, хранящая путь к файлу https://www.cyberforum.ru/ cpp-beginners/ thread1762681.html
string upgrade(string name) { return "C:\Users\Имя пользователя\Desktop\" + name + ".txt"; } Компилятор ругается. Почему?
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
14.06.2016, 21:00 0

Сформировать двунаправленный список целых чисел - C++ - Ответ 9272746

14.06.2016, 21:00. Показов 2639. Ответов 1
Метки (Все метки)

Лучший ответ Сообщение было отмечено mr_burtak как решение

Решение

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
119
120
121
122
#include <iostream>
#include <cstdlib>
 
struct node {
    node* prev;
    node* next;
    int   val;
};
 
typedef struct {
    node* head;
    node* tail;
} list_t;
 
inline void list_init(list_t* lst);
bool  list_add(list_t* lst, int val);
void  list_clear(list_t* lst);
node* list_delete(list_t* lst, node* pos);
void  list_remove(list_t* lst, bool (*pcmp)(int));
 
bool icmp(int val) { return ((val % 2) == 0); }
 
 
int main(void){
    list_t lst;
    list_init(&lst);
    for(int i = 0; i < 10; ++i){
        int n = 1 + rand() % 9;
        list_add(&lst, n);
        std::cout << n << ' ';
    }
    std::cout << std::endl;
 
    //удалить все чётные числа
    list_remove(&lst, &icmp);
 
    //вывести с начало
    for(const node* a = lst.head; a != NULL; a = a->next)
        std::cout << a->val << ' ';
    std::cout << std::endl;
 
    //вывести с конца
    for(const node* b = lst.tail; b != NULL; b = b->prev)
        std::cout << b->val << ' ';
    std::cout << std::endl;
    list_clear(&lst);
    return 0;
}
 
//удаление элементов по функтору
void list_remove(list_t* lst, bool (*pcmp)(int)){
    for(node* p = lst->head; p != NULL; ){
        if((*pcmp)(p->val))
            p = list_delete(lst, p);
        else
            p = p->next;
    }
}
 
//удаление элемента
node* list_delete(list_t* lst, node* pos){
    node*  p;
    node*& h = lst->head;
    node*& t = lst->tail;
    if(pos == NULL)
        return NULL;
    else if(pos == h){
        p = h = h->next;
        if(h != NULL)
            h->prev = NULL;
        else
            t = NULL;
    } else if(pos == t){
        p = NULL;
        t = t->prev;
        if(t != NULL)
            t->next = NULL;
        else
            h = NULL;
    } else {
        pos->prev->next = pos->next;
        pos->next->prev = pos->prev;
        p = pos->next;
    }
    delete pos;
    return p;
}
 
//вставка в конец списка
bool list_add(list_t* lst, int val){
    node* p = new (std::nothrow) node();
    if(p == NULL)
        return false;
 
    p->prev = p->next = NULL;
    p->val  = val;
 
    if(lst->head == NULL)
        lst->head = lst->tail = p;
    else {
        p->prev = lst->tail;
        lst->tail->next = p;
        lst->tail = p;
    }
    return true;
}
 
//удаление всех
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;
}
 
//инициализация
inline void list_init(list_t* lst){
    lst->head = lst->tail = NULL;
}


Вернуться к обсуждению:
Сформировать двунаправленный список целых чисел C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2016, 21:00
Готовые ответы и решения:

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

Создать двунаправленный список из целых чисел
Нужна помощь! Создать двунаправленный список из целых чисел. Удалить из списка элемент после...

Сформировать список целых чисел и упорядочить их по неубыванию
Не могу разобраться с лабораторной работой. Прошу помочь. Сформировать список целых чисел и...

Сформировать список целых чисел, считав их из заданного файла
В текстовом файле INPUT.TXT записаны целые числа через пробел, возможно, в несколько строк. За один...

1
14.06.2016, 21:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2016, 21:00
Помогаю со студенческими работами здесь

Как сформировать двунаправленный список?
Как сформировать двунаправленный список действительных чисел? Нужно удалить из списка второй и...

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

Сформировать односвязный кольцевой линейный список по файлу целых чисел
Помогите пожалуйста,разобраться..для меня тема новая,не очень понимаю как написать код к заданию:...

Сформировать двунаправленный список, тип информационного поля char*
Всем привет, кто сможет помочь с заданием? 1. Сформировать двунаправленный список, тип...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru