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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
katrin_
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 8
05.07.2011, 13:09     Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева" #1
Создать программу для работы с бинарным деревом, реализующую функции: добавить элемент, удалить элемент, вывести в виде «дерева». В 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

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

Динамический двусвязный список (операции: добавить элемент после данного, удалить данный элемент …) C++
C++ Доработка структуры (удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером)
C++ Однонаправленный список. Операции: удалить элемент из заданной позиции, добавить элемент в заданную позицию,проверка на неравенство
Структура "Информация": - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить элемент перед элемент C++
C++ Удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
05.07.2011, 14:08     Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева" #2
на си и написано, за исключением iostream, но это легко исправить
katrin_
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 8
05.07.2011, 19:20  [ТС]     Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева" #3
а как?!
я новичок в С
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 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);
 }
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'
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
05.07.2011, 21:01     Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева" #6
замениете 33-ю строку на
C
1
printf("%d", ptr->dann);
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
05.07.2011, 21:02     Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева" #7
Цитата Сообщение от Maxwe11 Посмотреть сообщение
cout<<ptr->dann;
Это С++ поток вывода, вот замени на
C
1
printf("%d", ptr->dann);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2011, 12:13     Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева"
Еще ссылки по теме:

Сформировать двунаправленный список. Удалить из него элемент с заданным ключом, добавить элемент с указанным номером C++
C++ Задача Иосифа Флавия. Удалить каждый второй элемент из списка и в конце вывести на экран последний оставшийся элемент
Удалить элемент из стека по условию и добавить элемент в начало стека C++

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

Или воспользуйтесь поиском по форуму:
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 ?!!!!!
Yandex
Объявления
06.07.2011, 12:13     Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева"
Ответ Создать тему
Опции темы

Текущее время: 03:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru