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

Разбор массивов/контейнеров - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ неправильное чтение бинарного файла. http://www.cyberforum.ru/cpp-beginners/thread156229.html
программа должна по идее вывести 99.. мне так казалось.. #include <iostream> #include <stdlib.h> #include <stdio.h> using namespace std; int main() {
C++ Вызов методов класса // practice.cpp : main project file. #include "stdafx.h" #include <iostream> #include <iomanip> using namespace std; const int size=20; //======================================== class publication { http://www.cyberforum.ru/cpp-beginners/thread156201.html
Ошибка сегментации C++
Здравствуйте, написал программу, запускаю- Windows пишет: "обнаружена ошибка. Приложение будет закрыто". Ошибка в функции: bool prov(int re){ int i=0,j=0; bool r; if ((re==re)and(re==re)){r=true;}; if ((re==re)and(re==re)){r=true;};
Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 C++
Здравствуйте Товарищи ;) Хочу, организовать себе памятку на будущее (чтобы потом поправить код) надумал использовать диррективу препроцессора #warning. НО тут проблема, в компиляторе Visual Studio 2008, её почему-то нет (может расскажете почему именной её убрали ;) ), ну не заменять же её #error - кой Может кто в курсе, как решить этот вопрос, буду очень признателен за помощь!
C++ Нахождение площади методом половинного деления http://www.cyberforum.ru/cpp-beginners/thread156118.html
Народ подскажите как находить площадь фигуры методом половинного деления, Вот фигура напрвте как решать метод половинного деления знаю как пишется.
C++ Найти два максимальных числа Задача впринципе легкая, но меня что-то зациклило по полной. Найти два максимальных числа из 10 введенных. БЕЗ массива. Одинаковое число может быть введено только ОДИН раз. Следовательно цикл может быть только один. Можно конечно наверное заводить под каждое введенное значение новую переменную... Но есть ли резон в этом? Кто может помогите плз. Вот код ищет максимальное число. //Находит... подробнее

Показать сообщение отдельно
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
28.07.2010, 23:20     Разбор массивов/контейнеров
похоже человеку сама идея нужна. ассоциативный контейнер строится на красно-черном дереве (одно из самобалансирующихся) например. надо написать класс в котором будут объявлены: корень дерева, класс элементов, методы для доступа (поиска по дереву) - записи и чтения.
Вот например строим массив на бинарном дереве, у каждого узла есть два поля: ключ и данные.
для каждого узла справедливо, что в его левом поддереве находятся узлы с "меньшим" ключом, а в левом поддереве узлы с "большим" ключом. по этому при поиске по такому дереву, если идти с корня, можно каждый раз выбирать по какой ветви мы пойдем искать в зависимости от ключа, что помогает избежать некоторого количества проверок и сэкономить время выполнения поиска.
для того чтобы время поиска по обоим поддеревьям было примерно одинаково пользуются "самобалансирующиеся" деревья. на википедии есть.
C++
1
2
3
4
5
6
7
8
9
10
11
12
template <typename Key,typename Value> class conteiner{
    class TreeNode{
        Key key;
        Value value;
    }
    void addNode(Key &k,Value &v);
    void deleteNode(const Key &k);
    void balance();// функция балансирует дерево, выравнивает левое и праваое поддеревья по глубине.
    public:
    conteiner();
    Value &operator[](const Key &k);
};
 
Текущее время: 02:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru