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

Добавление элемента в двоичное дерево - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как установить время изменения каталога или файла ? http://www.cyberforum.ru/cpp-beginners/thread1153351.html
Есть такая задача : отловить изменения подкаталогов в каталоге и вывести время их изменения. Вот мой код: #include "stdafx.h" #include <iostream> #include <Windows.h> #include <stdio.h> using namespace std; HANDLE hFind; HANDLE hndl;
C++ Найти количество вхождений каждого слова в файл Есть файл, в нем определенный текст. Нужно найти сколько каждое слово встречается в файле...Начал писать, уже сделал чтобы разделяло на слова...но до истины увы дойти не могу...Помогите плиз) #include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream> #include <fstream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread1153339.html
C++ Даны текстовые файлы F и G. Переписать в файл Q все слова, встречающиеся и в F, и в G
Даны текстовые файлы F и G. Переписать в файл Q все слова, встречающиеся и в F, и в G Чем быстрее, тем лучше) Начало вроде написал, но застрял на разделении на слова и их сравнении. Простым языком, без всяких iostram и т.д. Добавлено через 7 минут
Неправельно работает функция шифрование C++
Помогите разобоаться! Метод шифрование простыми вертикальными перестановками. Проблема в построение квадрата символов т.е. не все символы выводит , и в конце квадрата должны добавляться символы '*' для кратности квадрата вот мой код #include <iostream> using namespace std; int main() { setlocale(LC_ALL,"Russian"); string str = "отогнуть воротник";
C++ Как проверить массив из char на пустоту? http://www.cyberforum.ru/cpp-beginners/thread1153323.html
после чсла выводит буквы М, в том месте где пустые значения, как сделать чтобы они не выводились? number != '\0' - не помогает, NULL тоже char number; cin>>number; for (int i = 0; i < 100; i++) { if(number != '3' && number != '6' && number != '\0') { cout<<number; }
C++ Чтение слов из файла и запись в бинарное дерево Нужно произвести чтение слов из файла и записать их в бинарное дерево. Я написал следующую функцию добавления. Как сделать так, чтобы он записывал все слова в дерево? У меня получается, что он записывает только первое слово на каждой стадии. Я не знаю как исправить это. TreePointer add(TreePointer leaf, Leaf x) { char a; string wordBuffer; подробнее

Показать сообщение отдельно
SMYH
 Аватар для SMYH
2 / 2 / 0
Регистрация: 23.10.2013
Сообщений: 38
21.04.2014, 18:07     Добавление элемента в двоичное дерево
bt.h
Кликните здесь для просмотра всего текста
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
#include <cstdlib>
#pragma once
 
class TreeNode{
    friend class SimpleTree;
    int data;
    TreeNode* left;
    TreeNode* right;
public:
    TreeNode(int value);
    ~TreeNode();
};
 
class SimpleTree{
private:
    void out(TreeNode* imRoot, int depth);
    void addio(TreeNode* imRoot, const int& value);
    TreeNode* root;
    
public:
    SimpleTree(int value);
    ~SimpleTree();
    void addRandomly(int value);
    void addInOrder(int value);
    void printOnSide();
};


bt.cpp
Кликните здесь для просмотра всего текста
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
#include "bt.h"
#include <cstdlib>
#include <iostream>
#include <ctime>
 
using std::cout;
using std::rand;
using std::srand;
using std::ctime;
using std::endl;
TreeNode::TreeNode(int value):
    data(value),
    left(NULL),
    right(NULL){}
 
TreeNode::~TreeNode(){
    if(left){
        delete left;
    }
    if(right){
        delete right;
    }
}
 
SimpleTree::SimpleTree(int value){
    root = new TreeNode(value);
}
 
SimpleTree::~SimpleTree(){
    if(root) delete root;
}
 
void SimpleTree::addRandomly(int value){
    bool headAndTail = rand()%2;
    TreeNode* newNode = new TreeNode(value);
 
    TreeNode* tmp = root;
 
    while(tmp!=NULL){
        headAndTail = rand()%2;
        if(headAndTail){
            tmp = tmp->left;
        }
        else{
            tmp = tmp->right;
        }
    }
    tmp = newNode;
}
 
void SimpleTree::printOnSide(){
    out(root,0);
}
 
void SimpleTree::out(TreeNode* imRoot, int depth){
    if(imRoot){
        out(imRoot->left, depth+1);
        for(int i = 0; i<depth;i++) cout<<" ";
        cout<<imRoot->data<<endl;
        out(imRoot->right, depth+1);
    }
}


Функция addRandomly() из SimpleTree, по задумке, должна случайно добавлять элемент в дерево. Для этого она случайно "шагает" от корня дерева, выбирая один из двух узлов, пока не найдет узел, указатель на который равен нулю. Затем выделяется память под этот узел, после этого значение указателя должно указывать на этот узел, но этого не происходит.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru