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

Бинарное дерево. Исправка кода - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двумерный массив (подсчитать количество звездочек) http://www.cyberforum.ru/cpp-beginners/thread860678.html
Доброго времени суток, товарищи программисты. Я учусь на программиста, и вот перед мной встала такова задача. Которую я не могу преодолеть. Задача: Написать двумерный массив символьного типа из звездочек и точек, в рендомном порядке, и подсчитать количество звездочек в массиве. Условие: Если звездочки идут подряд, в рядке или строке то считать их как одну. Я вот что наработал: #include...
C++ Недостатки данного кода С++ Здравствуйте, Уважаемые Форумчане! Подскажите, пожалуйста. Что не так в этом коде? Перечислите недостатки, которые вы видите. Предложите свой вариант рефакторинга. #include <stdio.h> class Feature { public: enum FeatureType {eUnknown, eCircle, eTriangle, eSquare}; Feature() : type(eUnknown), points(0) { } http://www.cyberforum.ru/cpp-beginners/thread860675.html
Дерево. Поуровневая связь C++
Имеется структура следующего вида: struct BinTree { int key; Node* left; Node* right; Node* level; }; Нужно написать функцию которая осуществляет связь при помощи указателя level на стуктуру такого же типа по схеме (за ранее подразумевается что указатели level = 0):
C++ С++ not implemented in type 'istream' for arguments of type 'float *'из-за чего эта ошибка и как исправить?
Написал программу для расчёта площади четырёхугольника и круга. Использовал простые операторы присвоения. Всё работало как надо. Но прочитав ещё раз условие своей курсовой заметил, что нужно обязательное использование структуры (struct). Начал переделывать и столкнулся с тем, что при компиляции выдаёт ошибки... Одна из них (встречается 3 раза из 5) это "not implemented in type 'istream' for...
C++ Перенос Microsoft Visual C++ 2010 Express http://www.cyberforum.ru/cpp-beginners/thread860644.html
Есть небольшой вопрос: На ноутбуке стоит Microsoft Visual C++ 2010 Express. Можно ли его как-нибудь перенести на компьютер, или придётся качать заново?
C++ и снова массивы (поиск, сортировка) ребят, пытаюсь написать код который: 1) выводит двумерную массив 2) осуществляет последовательный поиск 3) переводит в одномерный массив 4) сортирует двумерный массив 5) осуществляет двумерный поиск первые 3 пункта я сделал, в 4 выдает ошибку, подскажите пожалуйста что не так.. #include "stdafx.h" #include <iostream> #include <iomanip> подробнее

Показать сообщение отдельно
papik1234567890
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 14

Бинарное дерево. Исправка кода - C++

10.05.2013, 15:53. Просмотров 188. Ответов 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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <iostream>
#include <string.h>
#include <Windows.h>
#include <time.h>
 
using namespace std;
 
struct Node{
    int val;
    Node*left;
    Node*right;
};
 
Node*root;
 
int Count(Node *root) // подсчитать листья
{
  int nRet = 0;
 
  if (root->left)
    nRet += Count(root->left);
  else
    nRet++;
 
  if (root->right)
    nRet += Count(root->right);
  else
    nRet++;
 
  return nRet;
}
 
// добавление элемента в дерево
void add_node(int x, Node* & root){
    if(root==NULL){
        root=new Node;
        root->val=x;
        root->left=root->right=NULL;
    }
    else {
        if (x < root->val)
            add_node(x, root->left);
            if(x>root->val)
                add_node(x, root->right);
    }
}
// распечатать дерево
void print_tree(Node*root){
    if (root==NULL)
        return;
    print_tree(root->left);
    cout<<root->val<<" ";
    print_tree(root->right);
}
 
// запрос
int zapros(){
    cout<<"Распечатка дерева:"<<endl;
    int answer;
    cout<<"Хотите ли вы распечатать дерево? /n 1. да. /n 2. нет."<<endl;
    cin>>answer;
    if(answer == 1)
        print_tree(root);
    
    cout<<endl<<"_________________________________"<<endl;
 
}
 
int main(){
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    const int MAX=1000;
    int mass[MAX];
    int Elements;
    int N, A;
    
 
 
   cout<<"Введите количество узлов:"<<endl;
   cin>>Elements;
   cout<<"Введите модуль МАКС и МИН возможных значений:"<<endl;
   cin>>N;
   A = (-N);
      srand(time(NULL));
    for(int i=0; i<Elements; i++){
        mass[i] = A + rand() % N;
        add_node(mass[i],root);
        
    }
    cout<<endl<<"_________________________"<<endl;
    zapros();
    
    int why;
    cout<<"Подсчёт количества листьев:"<<endl;
    why=Count(root);
    cout<<why<<endl<<"____________________"<<endl;
    zapros();
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru