网站开发和网页设计,动画设计师招聘,怎么查自己的二建信息,长沙定制网站开发目录
1.知识回顾
2.分析
3.代码
后序遍历销毁(最简洁)
前序遍历销毁(不推荐)
中序遍历销毁(不推荐)
4.将函数嵌入main函数中执行 1.知识回顾
106.【C语言】数据结构之二叉树的三种递归遍历方式
2.分析
销毁二叉树需要按照一定的顺序去销毁,例如:先销毁根还是先销毁根…目录
1.知识回顾
2.分析
3.代码
后序遍历销毁(最简洁)
前序遍历销毁(不推荐)
中序遍历销毁(不推荐)
4.将函数嵌入main函数中执行 1.知识回顾
106.【C语言】数据结构之二叉树的三种递归遍历方式
2.分析
销毁二叉树需要按照一定的顺序去销毁,例如:先销毁根还是先销毁根对应的左右节点?这里有讲究
可以采用三种遍历的方法逐个销毁节点
3.代码
后序遍历销毁(最简洁)
后序遍历:按左子树--右子树--根的顺序遍历
void TreeDestory(BTNode* root)
{if (root NULL)return;TreeDestory(root-left);TreeDestory(root-right);free(root);
}
前序遍历销毁(不推荐)
前序遍历:按根--左子树--右子树的顺序遍历
销毁根节点前需要保存根节点指向的左右节点的地址
void TreeDestory(BTNode* root)
{if (root NULL)return;BTNode* left root-left;BTNode* right root-right;free(root);TreeDestory(left);TreeDestory(right);
}
中序遍历销毁(不推荐)
销毁根节点前需要保存根节点指向的右节点的地址
void TreeDestory(BTNode* root)
{if (root NULL)return;TreeDestory(root-left);BTNode* right root-right;free(root);TreeDestory(right);
}
注:三种方法在free()后均没有将指针置NULL,原因是root是一级指针,要想改变一级指针的值需要传递二级指针,可以在main函数中将指针手动置NULL
4.将函数嵌入main函数中执行
int main()
{BTNode* root CreateTree();TreeDestory(root);root NULL;return 0;
}