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

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

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

Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева" - C++

05.07.2011, 13:09. Просмотров 1188. Ответов 7
Метки нет (Все метки)

Создать программу для работы с бинарным деревом, реализующую функции: добавить элемент, удалить элемент, вывести в виде «дерева». В C++
Буду благодарна, если кто поможет написать код. а то я что-то вообще запуталась...((((

Добавлено через 15 часов 31 минуту
Программа написана на С++ мне нужно на С, помогите переделать под мою задачу...

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
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <iostream.h>
struct TREE
{
int dann;
TREE *pleft;
TREE *pright;
};
TREE* maketree(int n=16)
{
TREE *ptr;
int nl,nr;
if (n==0) return NULL;
nl=n/2;
nr=n-nl-1;
ptr=new(TREE);
cout<<"Input node value: ";
cin>>ptr->dann;
ptr->pleft=maketree(nl);
ptr->pright=maketree(nr);
return (ptr);
}
void print(TREE *ptr, int x, int y)
{
static level=0;
if (ptr!=NULL)
{
level++;
int delta=80/(2<<(level+1));
gotoxy(x,y);
cout<<ptr->dann;
int savedlevel=level;
print(ptr->pright,x-delta, y+1);
level=savedlevel;
print(ptr->pleft,x+delta, y+1);
}
}
void main(void)
{
TREE *ptr;
int n;
clrscr();
cout<<"Input count node: ";
cin>>n;
ptr=maketree(n);
clrscr();
print(ptr,40,1);
cout<<endl<<"ok!";
cin>>n;
}
Добавлено через 3 минуты
Создать программу для работы с бинарным деревом, реализующую функции: добавить элемент, удалить элемент, вывести в виде «дерева».

выполняется на ЯП Си, среда выполнения: Borland C++5.02

 Комментарий модератора 
Используйте теги форматирования кода!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2011, 13:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева" (C++):

Структура "Информация": - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить элемент перед элемент - C++
Структура &quot;Информация&quot;: - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить...

Структура "Сотрудник": удалить элемент с заданной фамилией, добавить элемент после заданного элемента - C++
Структура &quot;Сотрудник&quot;: - фамилия, имя, отчество; - должность - год рождения; - заработная плата. Удалить элемент с указанной...

Добавить элемент "барьер" в конец массива - C++
Добрый вечер! Как в конец динамического массива добавить элемент х что вводит пользователь? Мне надо создать массив из n элементов,...

Вывод бинарного дерева на экран в виде "дерева" - C++
основная задача: подсчет количества листьев. проблема: при просмотре хочу выводить бин. дерево, в красивом виде, возможно использование...

Двусвязный список - Добавить элемент после заданного, удалить заданный элемент - C++
Реализуйте списочную структуру в виде класса. работа состоит из двух частей: из класса (структуры, алгоритма) и из тестирующего кода. ...

Динамический двусвязный список (операции: добавить элемент после данного, удалить данный элемент …) - C++
реализовать Динамический двусвязный список (операции: добавить элемент после данного, удалить данный элемент …). используя: class List...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
05.07.2011, 14:08 #2
на си и написано, за исключением iostream, но это легко исправить
0
katrin_
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 8
05.07.2011, 19:20  [ТС] #3
а как?!
я новичок в С
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
05.07.2011, 19:28 #4
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
#include <conio.h>
 #include <string.h>
 #include <stdio.h>
 
 struct TREE
 {
 int dann;
 TREE *pleft;
 TREE *pright;
 };
 TREE* maketree(int n=16)
 {
 TREE *ptr;
 int nl,nr;
 if (n==0) return NULL;
 nl=n/2;
 nr=n-nl-1;
 ptr=new(TREE);
 printf("Input node value: ");
 scanf("%d", ptr->dann);
 ptr->pleft=maketree(nl);
 ptr->pright=maketree(nr);
 return (ptr);
 }
 void print(TREE *ptr, int x, int y)
 {
 static level=0;
 if (ptr!=NULL)
 {
 level++;
 int delta=80/(2<<(level+1));
 gotoxy(x,y);
 cout<<ptr->dann;
 int savedlevel=level;
 print(ptr->pright,x-delta, y+1);
 level=savedlevel;
 print(ptr->pleft,x+delta, y+1);
 }
 }
int main(void)
 {
 TREE *ptr;
 int n;
 clrscr();
 printf("Input count node: ");
 scanf("%d", &n);
 ptr=maketree(n);
 clrscr();
 print(ptr,40,1);
 printf(\nok!");
 scanf("%d", &n);
 }
0
katrin_
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 8
05.07.2011, 20:57  [ТС] #5
а почему в строке 33 count мне выдает ошибку, как "undefined symbol 'count'
и в строке 50 Expression syntax и еще Unterminated string or character constant
Я в строке 50 просто переменила printf(\nok!"); на printf(/nok!");

как мне их исправить?!

Добавлено через 7 минут
Ой!!! я исправила=)
в строке 50=)

Добавлено через 2 минуты
только в строке 33 мне выдает ошибку
undefined symbol 'count'
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
05.07.2011, 21:01 #6
замениете 33-ю строку на
C
1
printf("%d", ptr->dann);
1
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
05.07.2011, 21:02 #7
Цитата Сообщение от Maxwe11 Посмотреть сообщение
cout<<ptr->dann;
Это С++ поток вывода, вот замени на
C
1
printf("%d", ptr->dann);
1
katrin_
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 8
06.07.2011, 12:13  [ТС] #8
знаете, выдал компилятор новые ошибки:
вот в этой новой строке:
Cannot convert 'char *' to 'TREE *'
Type mismatch in parameter 'ptr' in call to 'print(TREE *, int, int)'
Too few parameters in call to 'print(TREE *, int,int)'

как здесь быть?! подскажите...

Добавлено через 18 минут
после ввода printf("%d", ptr->dann);

Добавлено через 14 часов 23 минуты
Ребят! спасибо большое за помощь=)
ошибки сама исправила

можете рассказать, почему оно выводит одно и то же число в виде дерева?!
4256692 ?!!!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2011, 12:13
Привет! Вот еще темы с ответами:

Удалить первый нулевой элемент массива и добавить после каждого чётного элемента особый элемент - C++
Здравствуйте! Имеется такая задача: 1) Сформировать одномерный массив целых чисел, используя датчик случайных чисел. 2) Распечатать...

Сформировать двунаправленный список. Удалить из него элемент с заданным ключом, добавить элемент с указанным номером - C++
Записи в линейном списке содержат ключевое поле типа *char(строка символов). Сформировать двунаправленный список. Удалить из него элемент с...

Удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером - C++
Структура &quot;Информация&quot;: - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить...

Однонаправленный список. Операции: удалить элемент из заданной позиции, добавить элемент в заданную позицию,проверка на неравенство - C++
Помогите. Есть одна написанная. Условия: Очередь. Операции: “+” добавить элемент ; “-“ удалить элемент ; bool() проверка «Пуста...


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

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

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