Скачиваний:
15
Добавлен:
18.03.2018
Размер:
1.03 Кб
Скачать
//Дана символьная строка, соответствующая обходу бинарного дерева в прямом порядке. Окончание ветви обозначено точкой. 
//Восстановите дерево

#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;
}
Соседние файлы в папке Дерево