gpt4 book ai didi

c - 释放二叉树 C 的内存

转载 作者:太空狗 更新时间:2023-10-29 15:09:51 25 4
gpt4 key购买 nike

我想从我分配的二叉树中释放内存什么遍历是最好的?

typedef struct Node{
struct Node * right;
struct Node * left;
void * data;
}Node;


typedef int (*cmp) (void*,void *);


Node* init(void * element){
Node * newNode=(Node*)malloc(sizeof(Node));
newNode->data=element;
newNode->left=NULL;
newNode->right=NULL;
return newNode;
}

void insert(void * element, Node** root,cmp compareTo){
if(*root==NULL){
*root=init(element);
return;
}
if(compareTo(element,(*root)->data)==1)
insert(element,&((*root)->left),compareTo);
else
insert(element,&((*root)->right),compareTo);
}

最佳答案

因为它是一棵树,所以您应该采用递归方法。

deallocate (node):
//do nothing if passed a non-existent node
if node is null
return

//now onto the recursion
deallocate(left node)
deallocate(right node)

free node

关于c - 释放二叉树 C 的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9181146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com