c语言中建了一个二叉树。怎么释放他的空间??
发布网友
发布时间:2022-05-12 05:24
我来回答
共3个回答
热心网友
时间:2023-11-20 09:31
栈不需要手动释放,系统自己释放的;
而堆需要释放空间,调用函数释放,参数为根节点
void Freetree(BTree *root)
{
if(root!=NULL)
{
Freetree(root->lchild);
Freetree(root->rchild);
free(root);//当左右子结点都为空时,调用free,释放空间
}
}
热心网友
时间:2023-11-20 09:32
释放的话得先在堆上是被分配内从空间了的
比如你的二叉树,先在堆上malloc存储空间,再放数据到里面。
最后不使用的时候free(C)或者delete(C++)。
热心网友
时间:2023-11-20 09:32
建在堆上的话就delete,
建在栈上可以不管追问while(1)
{
BiTree L;
char a;
printf("please input the tree:\n");
create(&L);
printf("编号\n");
PostOrder(L);
printf("\n");
printf("打印树状形式图\n");
PrintTree(L, L->num);
printf("do you want to continue? Y or N?\n");
getchar();
scanf("%c",&a);
if(a=='Y')
continue;
else
break;
}