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

Вывести число вершин n-го уровня (Бинарное дерево поиска) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму элементов в тех строках которые, содержат хотя бы один отрицательный элемент http://www.cyberforum.ru/cpp-beginners/thread528066.html
Доброго времени суток, очень нужна помощь по одной задачке: Для заданной матрицы размером 8 на 8 найти такие К , что К-я строка матрицы совпадает с К-м столбцом. Найти сумму элементов в тех строках которые, содержат хотя бы один отрицательный элемент. Заранее благодарен!
C++ Возведение в степень Вам конечно это покажется тупой проблемой, но всё же. Напишите пожалуйста как возводить в степень на си и пример. В инете что ищу всё на си++, а мне на обычном надо. http://www.cyberforum.ru/cpp-beginners/thread528053.html
Что интересного можно рассказать о итераторах C++
Нужно рассказать что-то интересное о стандартных итераторах в С++. Может какие-то нетипичные приемы, какие-нибудь оригинальные способы использования. Что-нибудь кроме стандартных приемов и определений. Может опытные программисты что-то на этот счет знают?
C++ Поиск по массиву
Некоторый массив содержит повторяющиеся элементы, нужно найти количество различных элементов в нём. #include<stdio.h> #include<conio.h> #include<iostream> using namespace std; int a = {2,2,5,7,5,7,9,11,10,2,4,1}; int N,i,j,k=0; main(){ N = sizeof(a)/sizeof(a); //узнаём длину массива
C++ Как заменить объект List одного класса объектом другого? http://www.cyberforum.ru/cpp-beginners/thread528041.html
к примеру дано нам 1 объект класса Book , я хочу его вставить в класс Table вместо удаленного объекта данного класса....как мне поступить? class Book { list <LegOfBooks> listBook; list <LegOfBooks> :: iterator iter1;
C++ Подключение PI Привет всем, уже не хватает злости от этого С языка... не могу никак подцепить PI, везде где можно пишут что нужно подцепить math.h и там M_PI, и все равно ничего не находит... MS Visual C++ Express подробнее

Показать сообщение отдельно
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
26.03.2012, 22:16  [ТС]     Вывести число вершин n-го уровня (Бинарное дерево поиска)
Duha666,
спасибо, но проблема не решилась, она открытой и осталась
теперь узнал что надо автоматически удалить все вершины...
без участия пользователя, так понимаю просто убрать вводимый ключ к
НО не могу понять почему игнориться ввод в майне ведь мне он нужен для того чтоб ввести номер уровня чтоб потом использовать обход и выдать пользователю результат о том сколько вершин на n уровне..
вот проблема то .. вроде в начале все норм не игнорится ввод а тут игнорится второй раз
panicwassano, проходил, хоть ставтье любые значения и условия он вообще не заходит в ввод т.е. не исп функцию ни сканф ни син во втоорой раз после построения дерева

Добавлено через 11 часов 30 минут
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#include <iomanip>
using namespace std;
 
struct BSTree   
  { 
    int key;
    BSTree *Left; 
    BSTree *Right; 
  };
BSTree *TRoot=NULL;
int lvl=0;
 
BSTree* AddTree(BSTree *t, int k) 
{
    if (t == NULL)
        { 
            t = new BSTree; 
            t->Left = NULL; 
            t->Right = NULL; 
            t->key = k;
        }
    else
        if(t->key==k) return t;
        else             
            {
                if (k > t->key ) t->Right=AddTree(t->Right, k);
                else t->Left=AddTree(t->Left, k);   
            }
    return t;
}
 
void TreeShow(BSTree *t, int lvl ) 
{
    int tab = 5;
    if (t == NULL) cout <<"Derevo pusto \n";
    else
        {
            if (t->Right != NULL) TreeShow(t->Right, lvl+1);
            cout <<setw(tab*lvl) <<t->key <<endl;
            if (t->Left != NULL) TreeShow(t->Left, lvl+1);
        }
}
 
void DEL_next(BSTree* T) 
{
    if(T!= NULL) 
        {
            DEL_next(T->Left);
            DEL_next(T->Right); 
            printf("BSTree %d - deleted\n",T->key);
            delete T;
            T=NULL;
        }
    
}
 
void DEL_BSTree() 
{
    if(TRoot!= NULL)
        {
            DEL_next(TRoot->Left);
            DEL_next(TRoot->Right);
            printf("BSTree %d - deleted\n",TRoot->key);
            TRoot->Left=NULL;
            TRoot->Right=NULL;
            delete TRoot;
            TRoot=NULL;
        } 
}
 
void main()
{
    int dig, p, Lv;
    cout<<"Enter the number of nodes of the tree of the future: ";
    cin>>p;
    cout <<"Enter the numbers, for the end of any character other than numbers:\n";
    for(int i=0; i<p; i++)
        {
            cin>>dig;
            TRoot=AddTree(TRoot, dig);
        }
    cout <<endl;
    TreeShow(TRoot, lvl);
    cout <<"Enter level: ";
    cin>>Lv;
    
    
    DEL_BSTree();
    if(TRoot==NULL) cout<<endl<<"Dynamic memory is freed"<<endl<<endl;
    system("PAUSE");
}
вот все сделал, но не могу понять с чего начать и как сделать, задание про то вывести на экран сколько узлов на n уровне...
нашел там с помощью стека но не понял смысла реализации как можно использовать стек и обход в ширину чтоб узнать сколь элементов на н уровне.. подскажите оч надо плиз
заранее спс
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru