Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 24.03.2022
Сообщений: 3
1

Очередь

24.03.2022, 21:10. Показов 866. Ответов 4

Author24 — интернет-сервис помощи студентам
Помогите с кодом. Не могу понять как с дифференцированием работать и его вписать

Очередь. Многочлены вида ne
p(x) = c1x^e1+c2x^e2+...+cnx^en , где e1>e2>…>en≥0

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
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
typedef struct QueueNode DataType;             
 
struct QueueNode *next;                            
 
    void input(int count){                          
        int ci,ei;                                    
                                                     
        printf("Enter c: ");
            scanf("%d",&ci);
        printf("Enter e: ");
            scanf("%d",&ei);
    }
 
void output(){                                
        printf ("cix^ei");
    }
 
void QueueNode *addToQueue (QueueNode*ptr, int &count){          
    QueueNode *tmp == ptr,*cur == new QueueNode;                
    cur->input(count++);                                  
    cur->next = nullptr;                                  
 
    if(ptr == nullptr){                                    
        ptr = cur;                                          
    }
    else{                                                   
        while(tmp -> next != nullptr){
            tmp = tmp -> next;
        }
 
        tmp -> next = cur;                                  
    }
 
    return ptr;                                             
}
 
void showQueue(QueueNode *ptr){                             
    QueueNode *tmp = ptr;
 
    if(ptr == nullptr){
        printf("Queue is empty!\n");                  
    }
    else{
        printf("P = ");
        while(tmp != nullptr){                             
            tmp -> output();                                    
 
            if(tmp -> next != nullptr) printf() << " + ";      
            tmp = tmp -> next;                                  
        }
        printf(';');
    }
}
 
void delQueue(QueueNode *ptr){                             
    QueueNode *tmp = ptr, *cur(nullptr);
 
    if(ptr == nullptr){
        printf("Queue is empty!\n");                  
    }
    else{
        while(tmp != nullptr){
            cur = tmp -> next;                     
            delete tmp;                                
            tmp = cur;                                 
        }
    }
}
 
int _tmain(int argc, _tchar* argv[])
{
    int count(1);                           
    QueueNode *Head(nullptr);               
 
    for(int i = 0; i < 3; ++i)              
        Head = addToQueue(Head, count);
 
    showQueue(Head);                        
    delQueue(Head);                         
 
    printf("\n\n");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.03.2022, 21:10
Ответы с готовыми решениями:

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

Очередь (сделать очередь, чтобы добавляло, удаляло, читало. Не STL.)
Помогите пожалуйста написать очередь. Есть Температура double и ее тип int ну и нужно сделать очередь, чтобы добавляло, удаляло, читало....

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

4
 Аватар для lemegeton
4890 / 2685 / 918
Регистрация: 29.11.2010
Сообщений: 5,772
25.03.2022, 01:56 2
Цитата Сообщение от T34m Посмотреть сообщение
как с дифференцированием
Что вы тут подразумеваете под "дифференцированием"?
Вы хотите взять производную произвольного многочлена?

Цитата Сообщение от T34m Посмотреть сообщение
Очередь. Многочлены
При чём тут очередь, объясните, пожалуйста.
Очередь это структура LIFO, типа кладешь туда элементы, забираешь их оттуда в том же порядке в каком положил.
При чем тут многочлен? Многочлен хранится как очередь? Как этот факт поможет?!
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
37658 / 20906 / 4285
Регистрация: 12.02.2012
Сообщений: 34,374
Записей в блоге: 14
25.03.2022, 05:16 3
Цитата Сообщение от lemegeton Посмотреть сообщение
Очередь это структура LIFO,
- все-таки FIFO
1
0 / 0 / 0
Регистрация: 24.03.2022
Сообщений: 3
25.03.2022, 11:51  [ТС] 4
Да, я имею ввиду взять производную от произвольного многочлена. И в дальнейшем чтоб программа решила этот многочлен.
А очередь это тип данных с которым надо работать в данной ситуации. Данный факт ни как не поможет, просто такое задание)
0
 Аватар для lemegeton
4890 / 2685 / 918
Регистрация: 29.11.2010
Сообщений: 5,772
25.03.2022, 22:41 5
Лучший ответ Сообщение было отмечено T34m как решение

Решение

Если что, я отказываюсь писать контейнеры без итераторов.
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
#include <iostream>
 
struct QueueNodeBase {
    QueueNodeBase *prev;
    QueueNodeBase *next;
 
    QueueNodeBase() : next(this), prev(this) {}
 
    QueueNodeBase(QueueNodeBase *prev, QueueNodeBase *next) : next(next), prev(prev) {
        next->prev = prev->next = this;
    }
 
    ~QueueNodeBase() {
        next->prev = prev;
        prev->next = next;
    }
};
 
template<typename T>
struct QueueNode : public QueueNodeBase {
    T value;
 
    QueueNode(QueueNodeBase *prev, QueueNodeBase *next, const T &value) : QueueNodeBase(prev, next), value(value) {}
};
 
template<typename T, typename QueueNodeBasePointer, typename QueueNodePointer>
struct QueueIterator {
    using iterator_category = std::bidirectional_iterator_tag;
    using difference_type = std::ptrdiff_t;
    using value_type = T;
    using pointer = value_type *;
    using reference = value_type &;
    using self = QueueIterator<T, QueueNodeBasePointer, QueueNodePointer>;
 
    QueueIterator(QueueNodeBasePointer node) : node(node) {}
 
    reference operator*() { return static_cast<QueueNodePointer>(node)->value; }
 
    reference operator*() const { return static_cast<QueueNodePointer>(node)->value; }
 
    pointer operator->() { return &static_cast<QueueNodePointer>(node)->value; }
 
    pointer operator->() const { return &static_cast<QueueNodePointer>(node)->value; }
 
    self &operator++() {
        node = node->next;
        return *this;
    }
 
    self operator++(int) {
        self result = *this;
        ++(*this);
        return result;
    }
 
    self &operator--() {
        node = node->prev;
        return *this;
    }
 
    self operator--(int) {
        self result = *this;
        --(*this);
        return result;
    }
 
    friend bool operator==(const self &a, const self &b) {
        return a.node == b.node;
    };
 
    friend bool operator!=(const self &a, const self &b) {
        return a.node != b.node;
    };
 
    QueueNodeBasePointer node;
};
 
template<typename T>
class Queue {
public:
    using Iterator = QueueIterator<T, QueueNodeBase *, QueueNode<T> *>;
    using ConstIterator = QueueIterator<const T, const QueueNodeBase *, const QueueNode<T> *>;
    using Node = QueueNode<T>;
 
    Queue() : base() {}
 
    Queue(const std::initializer_list<T> &list) : base() {
        for (auto &i : list) {
            pushBack(i);
        }
    }
 
    Queue(const Queue<T> &other) : base() {
        for (auto &i : other) {
            pushBack(i);
        }
    }
 
    Queue<T> &operator=(const Queue<T> &other) {
        if (this != &other) {
            clear();
            for (auto &i : other) {
                pushBack(i);
            }
        }
        return &this;
    }
 
    ~Queue() {
        clear();
    }
 
    void pushBack(const T &value) {
        new Node(base.prev, &base, value);
    }
 
    T popFront() {
        T result = *begin();
        delete base.next;
        return result;
    }
 
    Iterator begin() {
        return base.next;
    }
 
    Iterator end() {
        return &base;
    }
 
    ConstIterator begin() const {
        return base.next;
    }
 
    ConstIterator end() const {
        return &base;
    }
 
    ConstIterator cbegin() const {
        return base.next;
    }
 
    ConstIterator cend() const {
        return &base;
    }
 
    bool isEmpty() const {
        return base.next == &base;
    }
 
    void clear() {
        while (!isEmpty()) {
            delete base.next;
        }
    }
 
private:
    QueueNodeBase base;
};
 
template<typename T>
std::ostream &operator<<(std::ostream &out, const Queue<T> &q) {
    for (auto i = q.cbegin(), end = q.cend(); i != end;) {
        std::cout << *i++;
        if (i != end) {
            std::cout << ", ";
        }
    }
    return out;
}
 
// допустим, очередь содержит коэфициенты полинома от младшей степени к старшей
template<typename T>
Queue<T> differentiate(const Queue<T> &polynomial) {
    if (polynomial.isEmpty()) {
        return Queue<T>();
    }
    Queue<T> result;
    std::size_t c = 0;
    for (auto i = ++polynomial.begin(), end = polynomial.end(); i != end;) {
        result.pushBack((++c) * (*i++));
    }
    return result;
}
 
 
int main() {
    Queue<double> coefficients{1, 3, 3, 1};
 
    std::cout << coefficients << std::endl << differentiate(coefficients) << std::endl;
 
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.03.2022, 22:41
Помогаю со студенческими работами здесь

Дана очередь с вещественными числами, упорядоченными по убыванию. Добавить в очередь среднее арифметическое элементов
Дана очередь с вещественными числами, упорядоченными по убыванию. Добавить в очередь среднее арифметическое элементов очереди, не...

Задача на очередь (вывод сообщения, что очередь пуста)
Доброго дня! Есть задачка на очередь, которая работает нормально, только надо добавить код, чтобы выводил сообщение, что очередь пуста.....

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

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

Работа с очередью. Умейте поставить в очередь элемент, удалить элемент из очереди, пересмотреть очередь
То чувство , когда изучали web и тут нам дают задачу по с++ ... Нужна помощь !!


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Создание и использование компонентов в Vue 3
Reangularity 14.03.2025
Компонент в Vue - это автономный блок интерфейса, который содержит собственную разметку, логику и стили. Представьте себе кнопку, форму ввода или даже целую панель навигации - всё это можно оформить. . .
Vue 3: Создаем современное веб-приложение с Composition API
Reangularity 14.03.2025
В фронтенд-разработке Vue 3 выделяется своим прагматичным подходом. В отличие от React с его минималистичной философией "всё — JavaScript" или Angular с его всеобъемлющим корпоративным подходом, Vue. . .
Разработка контекстных меню в iOS
mobDevWorks 14.03.2025
С приходом iOS 13 Apple представила новый API для контекстных меню, который полностью заменил предыдущую технологию 3D Touch peek & pop. Хотя многие разработчики и пользователи испытывают ностальгию. . .
Лучшие практики оптимизации Docker Image
Mr. Docker 13.03.2025
Размер Docker-образа влияет на множество аспектов работы с контейнерами. Чем больше образ, тем дольше его загрузка в реестр и выгрузка из него. Для команд разработки, работающих с CI/ CD пайплайнами,. . .
Вопросы на собеседовании по Docker
Mr. Docker 13.03.2025
Ты сидишь напротив технического специалиста, и вдруг звучит вопрос про Docker Swarm или многоэтапные сборки. Пот на лбу? Не переживай, после этой статьи ты будешь готов ко всему! Эта статья будет. . .
Поиск текста в сносках : замена дефиса на тире или тире на дефис...
РоΜа 13.03.2025
Нужно было найти текст в сносках и заменить. Почему-то метод селекшн не сработал. . . пришлось гуглить. найденный на форумвба код пришлось править. Смысл - заменяет в сносках дефисы и тире на нужные. . . .
Real PATH definitions in bash scripts
jigi33 13.03.2025
Как поймать путь и путь к директории относительно запускаемого файла в BASH 1. поймать путь через вывод $(pwd) 2. более правильно - на основе realpath (см. скриншот)
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
Непрерывное развертывание в Java с Kubernetes
Javaican 13.03.2025
Чем так привлекателен Kubernetes для развертывания Java-приложений? Этот оркестратор контейнеров позволяет автоматизировать развертывание, масштабирование и управление контейнеризированными. . .
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
run.dev 13.03.2025
JavaScript занимает первые позиции среди языков веб-разработки, но его распространенность делает его привлекательной целью для злоумышленников. Межсайтовый скриптинг (XSS), межсайтовая подделка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер