设二叉树以二叉链表存储,删除一颗二叉树,并释放所有的结点空间的算法

论坛 期权论坛 期权     
ryan__   2018-4-26 13:44   5649   2
分享到 :
0 人收藏

2 个回复

倒序浏览
2#
记住一座城  3级会员 | 2018-4-30 02:08:15 发帖IP地址来自
typedef struct Bitnode    //二叉树结点定义
{
   int data;
   struct Bitnode *lchild;
   struct Bitnode *rchild;
}Bitnode;

Bitnode* Binary_Create()  //创建二叉树
{
   Bitnode *t = NULL;
   int n;
   scanf("%d", &n);
   if (n != 0)
   {
      t = (Bitnode *)malloc(sizeof(Bitnode));
      if (t == NULL)
         printf("内存分配错误!");
      else
      {
         t->data = n;
         t->lchild = Binary_Create();
         t->rchild = Binary_Create();
      }
   }
   return t;
}

void Binary_Output(Bitnode *t) //前序遍历二叉树
{
   if (t != NULL)
   {
      printf("%d ", t->data);
      Binary_Output(t->lchild);
      Binary_Output(t->rchild);
   }
}

void Binary_Delete(Bitnode *t)   //释放空间
{
   if (t != NULL)
   {
      Binary_Delete(t->lchild);
      Binary_Delete(t->rchild);
      free(t);
   }
}

void Inorder(Bitnode *t)  //中序遍历
{
   if ( t != NULL)
   {
     Inorder(t->lchild);
     printf("%d ", t->data);
     Inorder(t->rchild);
   }
}
3#
weichang0829  3级会员 | 2018-4-30 02:08:16 发帖IP地址来自
二叉树是一种递归数据结构,所以二叉树的很多算法都是递归实现的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP