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

Дерево - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перенос битов http://www.cyberforum.ru/cpp-beginners/thread288608.html
Ввести число, перенести все еденичные биты в середину разрядной сетки.
C++ typedef struct .... Здравствуейте. Обьясните пожалуйсто новичку что означает этот код. typedef struct { long num_servers; long data_size; char* data; }SSQ_BATCH_REPLY,*PSSQ_BATCH_REPLY; http://www.cyberforum.ru/cpp-beginners/thread288590.html
C++ Программка С++ Proc
Описать функцию Power2(A, N) вещественного типа, находящую вели- чину AN(N-это степень A) (A — вещественный, N — целый параметр) по следующим форму- лам: A0(0-степень A) = 1; AN(N-степень A) = A•A•…•A (N сомножителей), если N > 0; AN(N-степень A)= 1/(A•A•…•A) (|N| сомножителей), если N < 0. С помощью этой функции найти AK, AL, AM(K,L,M-степени A), если...
Работа со словами в строке. C++
Здравствуйте. Помогите, пожалуйста, с решением. 1) Вводим предложение. Нужно вывести каждое слово с новой строки. Разделителями между словами могут быть: пробел, ‘ , /, , . и т.д. Цифры выводить не нужно. Программу вроде написал. #include <iostream.h> #include <string.h> void main () { char s; cout<<"vvedite text"<<endl; cin.getline(s,149);
C++ Задание про слова http://www.cyberforum.ru/cpp-beginners/thread288554.html
Здравствуйте,я в си новичок.Не поможете мне решить задачу(написать код)? "Дано ошибочно написанное слово "рпроцессо". Путем перемещения его букв получить слово "процессор"
C++ прога, которая по нажатой клавише выводит ascii - код символа это клавиши или scan - код самой клавиши. написать программу, которая по нажатой клавише выводит ascii - код символа этой клавиши или scan - код самой клавиши. осуществите вывод в 8-й, 10-й и 16-й системах счисления. код с++. заранее спасибо!!! подробнее

Показать сообщение отдельно
kjahert
48 / 48 / 5
Регистрация: 08.04.2011
Сообщений: 124
04.05.2011, 17:36     Дерево
Условие:
Программа построения дерева, где узел(корень) - ФИО препода, а инф. поля (наверное левая\правая ветки) имеют записи: 1)должность(string[10]), 2)предметы что преподает. Написать процедуру печати построеного бинарного дерева(полная инфа про препода)

Кто нибудь знает как выполнить это задание, т.е. как в корень записать симв. строку, какие if 'ы и while'ы использовать, в какую часть дерева записывать записи?

В наличии имеються функции добавления первого введенного элемента в корень и ввода остальных узлов и вывода дерева print_tree ну и структура с *left, *right и
некоторым d что похоже есть num

Добавлено через 55 секунд
По структуре надо
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
#include <iostream.h>
 
struct node
{
 int d;
 node *left;
 node *right;
};
node * first(int d);
node * search_insert(node *root, int d);
void print_tree(node *root, int l);
 
void main()
{
    int n, i, what;
    cout<<"input n \n";
    cin>>n;
    cout<<"input first what \n";
    cin>>what;
    node *root = first(what);
    for (i = 1; i<n; i++)
    {
    cout<<"input what \n";
    cin>>what;
    search_insert(root, what);
    }
    print_tree(root, 0);
 
}
 
node * first(int d)
{
    node *pv = new node;
    pv->d    = d;
    pv->left = 0;
    pv->right = 0;
    return pv;
}
 
node * search_insert(node *root, int d)
{
    node *pv = root, *prev;
    int found = 0;
    while (pv && !found){
       prev = pv;
       if   (d == pv->d) found = 1;
       else if  (d <  pv->d)pv     = pv->left;
       else         pv     = pv->right;
    }
    if (found) return pv;
    node *pnew  = new node;
    pnew->d     = d;
    pnew->left  = 0;
    pnew->right = 0;
    if (d < prev->d)
       prev->left  = pnew;
    else
       prev->right = pnew;
    return pnew;
}
 
void print_tree(node *p, int level)
{
    if (p)
    {
    print_tree(p->left, level+1);
    for (int i = 0; i<level; i++)
    cout << "    ";
    cout <<  p->d << endl;
    print_tree(p->right, level + 1);
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru