Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что это? https://www.cyberforum.ru/ cpp-beginners/ thread2401059.html
Как это читается? p = new double* Выделение динамической памяти под ... double **p = 0; //двойной нулевой указатель *( *( p = new double* ) = new double ) = 2;
C++ Вывод значений вектора в обратном порядке
Здравствуйте, уже второй день не могу понять зачем в строчке for (int i = bits.size() - 1; i >= 0; --i) нужен -1. Понимаю что это совсем просто, но не могу найти нужной информации. Вот сама программа: #include <iostream> #include <vector> using namespace std; int main() { int n; vector<int> bits;
C++ Решение уравнения методами дихотомии и итерации Решить уравнение e^x – 10 x = 0 на отрезке с точностью Е методами дихотомии и итерации. https://www.cyberforum.ru/ cpp-beginners/ thread2401036.html C++ В текстовом файле определить количество слов начинающихся и заканчивающихся на одну и ту же букву Программа предназначена для подсчитывания в текстовом файле количества слов начинающихся и заканчивающихся на одну и ту же букву. Возникла проблема: Если в текстовом документе слово начинающееся и заканчивающееся на одну и ту же букву находится в конце,то на экран оно почему то выводится два раза Вот например текст в документе: А вот результат работы программы: https://www.cyberforum.ru/ cpp-beginners/ thread2401032.html
Использование наследования классов C++
Как присвоить данные первого класса второму? Что за материнский класс и как он работает? class LeatherArmor { public: int armor; armor = 20; }; class Rogue
C++ Найти строки с ошибками и объяснить их https://www.cyberforum.ru/ cpp-beginners/ thread2400999.html
Найти строки с ошибками и объяснить их(исправить) struct elem { int x; elem* y;}; main(){ elem *p; int * s; s=p; s=&(p.x); s=p.x; s=&(p->x);
C++ Пример #pragma once Хочу разобраться зачем использовать #pragma once.В теореи я понял что она нужна для защиты от повторного подключения заголовков.Но мне остаеться это не понятно на практике.Хотелось бы увидеть пример использование этого препроцесора. https://www.cyberforum.ru/ cpp-beginners/ thread2400996.html C++ Написание синтаксического анализатора кода на C++
Добрый день, сделал лексический анализатор ООП кода на с++. Теперь возник вопрос как сделать синтаксический анализатор. Множество статей прочитал, но не особо понял сам принцип. Можете написать псевдо алгоритм синтаксического разбора класса в с++
C++ Функция формирующая массив слов входящих в строку Написать программу на C++. В программе определить функцию SplitStr(S , W , N ), которая формирует по данной строке S массив W слов, входящих в строку S (массив W и его размер N являются выходными параметрами) . Словом считается набор символов ,не содержащий пробелов и ограниченный пробелами или началом/концом строки; пердполагается ,что строка S содержит не более 10 слов. Используя функцию... https://www.cyberforum.ru/ cpp-beginners/ thread2400972.html C++ Вызов методов в классах, ошибка: variable type 'Sequin' is an abstract class https://www.cyberforum.ru/ cpp-beginners/ thread2400941.html
Мне выдает следующую ошибкуerror: variable type 'Sequin' is an abstract class. Я предполагаю, что ошибка в вызове, но пока не знаю как исправить class Clothes{ public: virtual void getDiscription() = 0; virtual double cost()=0; }; class Decorator : public Clothes{ public:
Найти сумму чисел, получаемых при последовательном вычеркивании последней цифры данного 5-значного числа C++
Дано натуральное пятизначное число.найти сумму чисел,получаемых при последовательном вычеркивании последней цифры числа
C++ Удаление повторяющихся элементов из вектора строк https://www.cyberforum.ru/ cpp-beginners/ thread2400931.html
Всем доброго времени суток. Как можно удалить из вектора все повторяющиеся элементы? Например: vector <string> str = {"begin","end","begin","xor","or","begin","end","not","and",'or'","not"} Добавлено через 35 минут Поправка опечатки: vector <string> str = {"begin","end","begin","xor","or","begin","end","not","and","or","not"}
0 / 0 / 0
Регистрация: 09.01.2019
Сообщений: 13
0

Последний элемент нулл - C++ - Ответ 13309262

08.02.2019, 17:56. Показов 295. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добрый вечер!

Знакомлюсь тут с деревьями, написала функцию next(), но она почему-то не выводит последний элемент... Как-то в пятницу вечером туго с соображаловкой, не могу понять что неправильно сделала. Подскажите, пожалуйста.

Вот код мейна
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
    std::vector<int> v = { 1, 5, 3, 8, 22, 69, 7, 43, 26 };
    branch* tree = vector_to_tree(v);
 
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, ", "));
    std::cout << "\n";
 
    while (tree)
    {
        std::cout << " - " << tree->value << "\n";
        tree = next(tree);
    }
}
Вот функции
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
struct branch
{
    int value;
    branch* parent;
    branch* left;
    branch* right;
};
 
branch* add(int value, branch* where = nullptr)
{
    branch* b = new branch;
    b->value = value;
    b->left = nullptr;
    b->right = nullptr;
    b->parent = nullptr;
 
    if (!where) return b;
 
    b->parent = where;
    if (where->value < value)
        if (where->right)
            add(value, where->right);
        else
            where->right = b;
 
    if (where->value >= value)
        if (where->left)
            add(value, where->left);
        else
            where->left = b;
 
    return b;
}
 
 
branch* min(branch* tree)
{
    while (tree->left)
        tree = tree->left;
 
    return tree;
}
 
branch* max(branch* tree)
{
    if (!tree) return nullptr;
 
    while (tree->right)
        tree = tree->right;
 
    return tree;
}
 
void remove(branch* to_delete)
{
    if (!to_delete->left && !to_delete->right)
        to_delete = nullptr;
    else
        to_delete = min(to_delete->left);
}
 
branch* next(branch* b)
{
    if (b->right)
        return min(b->right);
    
    if (b->left)
        return max(b->right);
 
    if (b->parent)
        return b->parent;
 
    return nullptr;
}
 
branch* prev(branch* b)
{
    if (b->left)
        return max(b->left);
 
    return nullptr;
}
 
branch* vector_to_tree(const std::vector<int>& v)
{
    branch* head = new branch;
    head->value = v.at(0);
    head->left = nullptr;
    head->right = nullptr;
    head->parent = nullptr;
 
    branch* tree = head;
    for (int i = 1; i < v.size(); ++i)
        add(v[i], tree);
 
    return head;
}
Спасибо!

Вернуться к обсуждению:
Последний элемент нулл C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2019, 17:56
Готовые ответы и решения:

Вывести содержимое списка в следующем порядке: первый элемент, последний элемент, второй элемент, предпоследни
#include &lt;iostream&gt; #include &lt;list&gt; #include &lt;iterator&gt; void output(std::list&lt;int&gt; myList,...

Строки. Как найти в слове первый элемент? Второй элемент, последний элемент?
как найти в слове первый элемент?Второй элемент,последний элемент.С помощью каких операторов это...

Как добавить элемент в очередь, используя указатель на последний элемент?
Не пойму как добавить элемент в очередь используя указатель на последний элемент. Выполняю задание...

Найти максимальный элемент массива и вывести последний четный элемент
Короче нужно чтобы програма нашла максимальный елемент масива и выводила на екран последное четное...

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

Массив: Найти первый отрицательный элемент в каждой строке и последний четный элемент в каждом столбце.
Дан двумерный массив двухбайтовых знаковых целочисленных элементов 5*8. Полагаем,что в каждой...

Задача Иосифа Флавия. Удалить каждый второй элемент из списка и в конце вывести на экран последний оставшийся элемент
Создать циклический список, в котором находятся элементы от 1 до N. Нужно написать программу,...

Заменить последний положительный элемент одномерного массива на второй элемент массива
Написать программу по заданию: заменить последний положительный элемент одномерного массива на...

Заменить последний положительный элемент одномерного массива на второй элемент массива
#include &lt;string&gt; #include&quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; ...

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