Добавил:
FluffyUnicorn
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Структуры данных примеры / Дерево / tree_prjam_postr_non_rec
.cpp#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_sim (TREE pn)
{
if (pn->left)
print_sim (pn->left);
printf ("%c ",pn->d);
if (pn->right)
print_sim (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;
TREE temp;
if (s[0] && s[0]!='.')
{
p = (TREE) malloc(sizeof(struct node));
p->d = s[0];
m[k++] = p;
}
for (n=1;s[n];n++)
{
p = m[--k];
if (s[n]=='.')
{
temp = (TREE) malloc(sizeof(struct node));
temp->d = s[n];
if (p->left)
m[k++] = p;
p->left = creat();
p->right = creat();
return p;
}
main()
{
TREE t=NULL;
n=0;
t=creat();
print_sim(t);
del_tree(t);
system("pause");
return 0;
}
Соседние файлы в папке Дерево