Добавил:
FluffyUnicorn
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Структуры данных примеры / Дерево / tree_prjam_postr
.c//Дана символьная строка, соответствующая обходу бинарного дерева в прямом порядке. Окончание ветви обозначено точкой.
//Восстановите дерево
#include <stdio.h>
#include <stdlib.h>
#define TREE struct node *
struct node
{
char d;
struct node *left, *right;
};
char s[]="abc.d..e..f.gh..i..";
int n;
void print_pr (TREE pn)
{
printf ("%c ",pn->d);
if (pn->left)
print_pr (pn->left);
if (pn->right)
print_pr (pn->right);
}
void del_tree(TREE pn)
{
if (pn->left)
del_tree(pn->left);
if (pn->right)
del_tree(pn->right);
free (pn);
}
TREE creat (void)
{
/* TREE m[10];
int k=0;
*/
TREE p;
if (s[n]=='.') {n++; return NULL;}
p = (TREE) malloc(sizeof(struct node));
p->d = s[n++];
p->left = creat();
p->right = creat();
return p;
}
main()
{
TREE t=NULL;
n=0;
t=creat();
print_pr(t);
del_tree(t);
system("pause");
return 0;
}
Соседние файлы в папке Дерево