Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Бинарное дерево

36K
21 мая 2008 года
katerina08
7 / / 20.05.2008
Помогите пожалуйста отредактировать программу, построение бинарного дерева, и прямой обход, на "чистом" С. Заранее ОГРОМНОЕ СПАСИБО!!!!:)
36K
21 мая 2008 года
katerina08
7 / / 20.05.2008
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct btree
{int a;
struct btree *left;
struct btree *right;}

btree build_tree()
{ char sym;
btree *d;
scanf ("%c", &sym );
switch ( sym )
{case '(' : { d = new btree;
scanf ("%c", &sym ); d->elem = sym;
d->left = build_tree ( );
d->right = build_tree ( ); scanf( "%c", &sym );
return d ; }
case '0' : return NULL ;
case ',' : d = build_tree ( ); return d ;
}
}


{ S = NULL;
while ( d != NULL)
{ obrabotka(d);
if ( d->left != NULL && d->right != NULL)
{vstek (S, d->right); d = d->left;}
else if ( d->left = = NULL && d->right = =NULL)
if ( S!= NULL) izsteka (S, d); else d = NULL;
else if (d->left != NULL) d = d->left;
else d = d->right;
}
}
void main()
{
clrscr();
getch();
}
360
21 мая 2008 года
P*t*
474 / / 15.02.2007
Отредактировать - в смысле найти ошибку?
Тогда хотябы скажи как ошибка проявляется.
например:
программа не компилируется
или
программа не работает на тесте <входные данные>

А так тебе врятли кто-нибудь поможет.
9.4K
21 мая 2008 года
AIGrifon
165 / / 13.11.2007
Цитата: katerina08
Помогите пожалуйста отредактировать программу, построение бинарного дерева, и прямой обход, на "чистом" С. Заранее ОГРОМНОЕ СПАСИБО!!!!:)



Отформатировал код и исправил некоторые синтаксические ошибки.
В C нет оператора new, есть функция malloc.
Желательно привести либо полный код, либо привести объяснения, что и для чего. Например, к чему относится второй блок.
И для работы функций их нужно вызывать, а в майне этого не видно.

[highlight=C]
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

struct btree
{
int elem;
struct btree *left;
struct btree *right;
};

btree build_tree()
{
char sym;
btree * d;

scanf ("%c", &sym );
switch (sym)
{
case '(' :
{
d = (btree *) alloc(sizeof(btree));
scanf ("%c", &sym );
d->elem = sym;

d->left = build_tree();
d->right = build_tree();

scanf( "%c", &sym );
return d ;
}
case '0' :
return NULL ;
case ',' :
d = build_tree();
return d ;
}
}

{
S = NULL;
while ( d != NULL)
{
obrabotka(d);
if ( d->left != NULL && d->right != NULL)
{
vstek (S, d->right);
d = d->left;
}
else
if (d->left == NULL && d->right == NULL)
if (S != NULL)
izsteka (S, d);
else
d = NULL;
else
if (d->left != NULL)
d = d->left;
else
d = d->right;
}
}
int main()
{
clrscr();
getch();

return 0;
}
[/highlight]

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог