Форум программистов, компьютерный форум CyberForum.ru

После максимального элемента списка L вставить заданный элемент a. - C++

Восстановить пароль Регистрация
 
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
28.12.2011, 17:04     После максимального элемента списка L вставить заданный элемент a. #1
1) После максимального элемента списка L вставить заданный элемент a.
2) Для заданного бинарного дерева поиска проверить условие:
• для каждой вершины высота левого поддерева отличается от высоты правого поддерева не более чем на 2 (по абсолютной величине).
Помогите пожалуйста. Сегодня к вечеру нужно сделать, иначе незачёт(

Добавлено через 1 час 27 минут
Апну пожалуй
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2011, 17:04     После максимального элемента списка L вставить заданный элемент a.
Посмотрите здесь:

C++ Как вставить индекс после максимального элемента массива со смещением остальных элементов?
C++ После максимального элемента списка L вставить заданный элемент a.
C++ Вставить в список L после первого элемента равного x элемент со значением y
C++ Удаление максимального элемента списка
Вставить после каждого элемента очереди, который содержит заданную цифру, элемент x C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.12.2011, 17:13     После максимального элемента списка L вставить заданный элемент a. #2
Цитата Сообщение от DebieCooepr Посмотреть сообщение
1) После максимального элемента списка L вставить заданный элемент a.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <list>
#include <iostream>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <ctime>
 
int main()
{
    srand(time(nullptr));
    std::list<int> l(10);
    std::generate(l.begin(), l.end(), [] { return rand() % 21; });
    std::copy(l.begin(), l.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    int a;
    std::cin >> a;
    auto max = std::max_element(l.begin(), l.end());
    l.insert(++max, a);
    std::copy(l.begin(), l.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}
Без C++0x
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <list>
#include <iostream>
#include <iterator>
#include <algorithm>
 
 
template <class T> T gen() { return rand() % 21; }
 
int main()
{
    srand(time(NULL));
    std::list<int> l(10);
    std::generate(l.begin(), l.end(), gen<int>);
    std::copy(l.begin(), l.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    int a;
    std::cin >> a;
    std::list<int>::iterator max = std::max_element(l.begin(), l.end());
    l.insert(++max, a);
    std::copy(l.begin(), l.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
28.12.2011, 23:23  [ТС]     После максимального элемента списка L вставить заданный элемент a. #3
1>d:\games\мои программы\1324\1324\32145.cpp(10) : error C2065: nullptr: необъявленный идентификатор
1>d:\games\мои программы\1324\1324\32145.cpp(12) : error C2059: синтаксическая ошибка: [
1>d:\games\мои программы\1324\1324\32145.cpp(12) : error C2143: синтаксическая ошибка: отсутствие ")" перед "{"
1>d:\games\мои программы\1324\1324\32145.cpp(12) : error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>d:\games\мои программы\1324\1324\32145.cpp(12) : error C2059: синтаксическая ошибка: )
1>d:\games\мои программы\1324\1324\32145.cpp(17) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>d:\games\мои программы\1324\1324\32145.cpp(17) : error C2440: инициализация: невозможно преобразовать 'std::list<_Ty>::_Iterator<_Secure_validation>' в 'int'
1> with
1> [
1> _Ty=int,
1> _Secure_validation=true
1> ]
1> Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен
1>d:\games\мои программы\1324\1324\32145.cpp(18) : error C2664: std::list<_Ty>::_Iterator<_Secure_validation> std::list<_Ty>::insert(std::list<_Ty>::_Const_iterator<true>,const _Ty &): невозможно преобразовать параметр 1 из 'int' в 'std::list<_Ty>::_Const_iterator<_Secure_validation>'
1> with
1> [
1> _Ty=int,
1> _Secure_validation=true
1> ]
1> Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
1>Журнал построения был сохранен в "file://d:\Games\Мои программы\1324\1324\Debug\BuildLog.htm"
1>1324 - ошибок 8, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Добавлено через 22 минуты
Помогите плиз)

Добавлено через 27 минут
Пожалуй апну

Добавлено через 10 минут
Очень нужно это задание, войдите в моё положение.

Добавлено через 29 минут
Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен. Что это вообще значит?

Добавлено через 4 часа 14 минут
Тема еще очень актуальна.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
29.12.2011, 12:00     После максимального элемента списка L вставить заданный элемент a. #4
Там под катом без нововведений из C++0x. Его компильте.
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
29.12.2011, 18:12  [ТС]     После максимального элемента списка L вставить заданный элемент a. #5
Всё уже разобрался. Спасибо большое.
Yandex
Объявления
29.12.2011, 18:12     После максимального элемента списка L вставить заданный элемент a.
Ответ Создать тему
Опции темы

Текущее время: 14:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru