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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 136
#1

полное бинарное дерево в консоль - C++

02.06.2013, 17:15. Просмотров 1315. Ответов 7
Метки нет (Все метки)

Помогите нарисовать полное бинарное дерево в консоле по заданному количеству уровней. чтобы выглядело норм , например через функцию gotoxy()
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
class node
{
public:
    int data;
    node* left;
    node* right;
    node()
    {
        left=NULL;
        right=NULL;
    }
    node(int n)
    {
        data=n;
        left=NULL;
        right=NULL;
    }
};
 
 
class tree
{
public:
    node *root;
    queue <node*> q;}
Кто нибудь знает как можно нарисовать?



Добавлено через 1 час 6 минут
могу кинуть полный код программы если ктот знает как там доделать

Добавлено через 17 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void ok(int x, int y,node *p,int i)
{
gotoxy(x,y);
Sleep(200);
if(p!=NULL) cout<<p->data;
if (p->left)
{
ok(x-20+i,y+1,p->left,i+=4);
}
x+=3;
if (p->right)
{
ok(x+20-i,y+1,p->right,i+=4);
}}
уже не вылетает но проблема со смещением_ хелп)
=)

Добавлено через 2 часа 8 минут
106 просмотров и не кто не знает(( печально
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2013, 17:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос полное бинарное дерево в консоль (C++):

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру - C++
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру. вот...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой - C++
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Бинарное дерево - C++
Как организовать вывод бинарного дерева?

Бинарное дерево - C++
Доброго времени суток. Ребят, я не спец, требуется решить такую задачу: Написать нерекурсивную программу, печатающую все вершины...

Бинарное дерево - C++
Столкнулся с уникальной проблемой от которой волосы дыбом встают. Вот код, достаточно первой итерации цикла, я ввожу данные а потом...

Бинарное дерево - C++
Нужно записать в дерево и вывести в форматированном виде каталог файлов(типа windows) на вход даны имена файлов вида c:\win\1 ...

7
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
02.06.2013, 17:26 #2
Есть идейка:
вершину считать положение х как-бы=0, а левого потомка х-1, правого х+1
0
kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 136
02.06.2013, 17:27  [ТС] #3
там будет наслоение , могу код кинуть чтобы желающие попробовали свои силы)) и помоч мне))
0
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
02.06.2013, 17:29 #4
Цитата Сообщение от kyzavr Посмотреть сообщение
там будет наслоение
т.е.?
игрик у потомков ++
0
kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 136
02.06.2013, 23:45  [ТС] #5
Добавлено через 51 минуту
ну че там?
0
kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 136
05.06.2013, 23:23  [ТС] #6
тема в новь открыта!!_ не появились люди которые знают как построить полное бинарное дерево в стоячем положении?? например через циклы?
C++
1
2
3
4
     
        3
     2     2
    1 1   1 1
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
05.06.2013, 23:29 #7
В стоячем никак не нарисуешь, кроме как если не делать возврат каретки в определенное место. Как правило, чтобы показать структуру дерева, используют след. рекурсивную функцию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void printWithLvls (Node *w, int lvl)
{
// *w - указатель на корень дерева
// lvl - уровень вершины
    if  (w != NULL)
    {
        printWithLvls (w->right, lvl + 1);
        for (int i = 0; i < lvl; i++)
            cout<< "   ";
        cout << w->key << '\n';
        printWithLvls (w->left, lvl + 1);
    }
}
Судя по вашему "бинарному дереву", сдается мне, что вы не понимаете его сути. Правый потомок всегда должен быть больше, левый меньше своего предка. А у вас нарисовано не пойми что.
0
kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 136
06.06.2013, 00:46  [ТС] #8
эта у меня есть) мне именно в стоячем надо ) примерно так
http://screenshot.su/show.php?img=1f...ad4412b443.jpg

И это Полное двоичное дерево с количеством уровней N, где на каждом уровне i располагаются узлы, информационные части которых равны N-i.


так что это мне не походит
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2013, 00:46
Привет! Вот еще темы с ответами:

Бинарное дерево - C++
Помогите исправить ошибку, компилятор ругается на 110 строку, не пойму почему( #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include...

Бинарное дерево - C++
Здравствуйте, нужно помощь в написании программы. Условие: Каждая вершина бинарного дерева содержит: - 2 указателя (на каждый...

Бинарное дерево - C++
Разработать и реализовать на языке С следующие функции работой с бинарным деревом: 1. Создание пустого дерева 2. Добавление элемента в...

Бинарное дерево - C++
Здравствуйте.Прошу помощи.Никак не могу разобраться в задании.Нужно сделать бинарное дерево и с помощью дерева привести выражение к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
06.06.2013, 00:46
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru