Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
18.03.2018
Размер:
1.08 Кб
Скачать
#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;
}
Соседние файлы в папке Дерево