当前位置:   article > 正文

【C语言】二叉树的模拟销毁和创建_销毁二叉树代码

销毁二叉树代码

二叉树的销毁操作

             要销毁一个二叉树的话,我们首先得创建一个二叉树。

  二叉树的模拟创建代码:

  1. #include <stdio.h>
  2. #include <assert.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. typedef int BTDataType;//二叉树存放数据的类型
  6. typedef struct BinaryTreeNode {//二叉树结构的定义
  7. struct BinaryTreeNode* left;//二叉树的左节点
  8. struct BinaryTreeNode* right;//二叉树的右节点
  9. BTDataType data;//二叉树的数据域
  10. }BTNode;//将定义的二叉树结构名字重新简化定义
  11. BTNode* BuyNode(BTDataType x) {//创建并且同时初始化二叉树的一个节点
  12. BTNode* node = (BTNode*)malloc(sizeof(BTNode));
  13. if (node == NULL) {
  14. printf("malloc fail!");
  15. exit(-1);
  16. }
  17. node->left = NULL;
  18. node->right = NULL;
  19. node->data = x;
  20. return node;
  21. }
  22. BTNode* CreatBinaryTree() {//模拟创建一个二叉树
  23. BTNode* node1 = BuyNode(1);
  24. BTNode* node2 = BuyNode(2);
  25. BTNode* node3 = BuyNode(3);
  26. BTNode* node4 = BuyNode(4);
  27. BTNode* node5 = BuyNode(5);
  28. BTNode* node6 = BuyNode(6);
  29. node1->left = node2;
  30. node1->right = node4;
  31. node2->left = node3;
  32. node4->left = node5;
  33. node4->right = node6;
  34. return node1;
  35. }
  36. int main(){
  37. BTNode* root = CreatrTree();
  38. return 0;
  39. }

创建完成后的二叉树如下图所示:

                  

 

   

二叉树的销毁代码:

  1. void TreeDestory(BTNode* root) {
  2. if (root == NULL) {//当根节点为空的时候,直接返回上一层就可以。
  3. return;
  4. }
  5. //printf("%d ", root->data);//可以借助打印来看程序是否执行正确
  6. TreeDestory(root->left);//先遍历左子树
  7. TreeDestory(root->right);//再遍历右子树
  8. free(root);//当左右子树都为空的时候,再将其根节点销毁。
  9. //这样,在其深度遍历完成的时候,这个二叉树就基本上被销毁了。
  10. }

总体思想:要销毁一个二叉树的话,我们可以先将其的左子树和右子树销毁,最后我们再销毁根节点。(最后销毁根节点的原因是:得需要利用其来找到其他的节点)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/622011
推荐阅读
相关标签
  

闽ICP备14008679号