Бинарное дерево
#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();
}
Тогда хотябы скажи как ошибка проявляется.
например:
программа не компилируется
или
программа не работает на тесте <входные данные>
А так тебе врятли кто-нибудь поможет.
Отформатировал код и исправил некоторые синтаксические ошибки.
В 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]