c语言中建了一个二叉树。怎么释放他的空间??

论坛 期权论坛 期权     
zh19900117   2018-4-26 13:41   8408   3
分享到 :
0 人收藏

3 个回复

倒序浏览
2#
灵动的真切  3级会员 | 2018-4-30 02:32:30 发帖IP地址来自
栈不需要手动释放,系统自己释放的;
而堆需要释放空间,调用函数释放,参数为根节点
void Freetree(BTree *root)
{
if(root!=NULL)
{
  Freetree(root->lchild);
  Freetree(root->rchild);
  free(root); //当左右子结点都为空时,调用free,释放空间
}

}
3#
山大威海校区  1级新秀 | 2018-4-30 02:32:31 发帖IP地址来自
释放的话得先在堆上是被分配内从空间了的

比如你的二叉树,先在堆上malloc存储空间,再放数据到里面。
最后不使用的时候free(C)或者delete(C++)。
4#
854619267  4级常客 | 2018-4-30 02:32:32 发帖IP地址来自
建在堆上的话就delete,
建在栈上可以不管
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

下载期权论坛手机APP