当前位置:   article > 正文

头歌-数据结构-二叉查找树的应用_第2关:二叉排序树应用 头哥

第2关:二叉排序树应用 头哥

第1关:二叉排序树应用一

  1. #include "binary_sort_tree.h"
  2. BiTreeNode* insertBiSortTree(BiTreeNode* root, int key)
  3. // 功能:实现向升序二叉排序树插入元素
  4. // 输入:待插入元素key
  5. // 返回:升序二叉排序树根节点
  6. {
  7. // 请在这里补充代码,完成本关任务
  8. /********** Begin *********/
  9. if (root == NULL)
  10. {
  11. BiTreeNode *newNode = new BiTreeNode(key);
  12. return newNode;
  13. }
  14. if (root->data>key) {
  15. if(root->left) insertBiSortTree(root->left, key);
  16. else root->left=new BiTreeNode(key);
  17. }else
  18. {
  19. if(root->right) insertBiSortTree(root->right, key);
  20. else root->right=new BiTreeNode(key);
  21. }
  22. return root;
  23. /********** End **********/
  24. }
  25. BiTreeNode* creatBiSortTree(int* arr, int n)
  26. // 功能:实现创建升序二叉排序树
  27. // 输入:无序整数数列arr,数列个数n
  28. // 返回:升序二叉排序树根节点
  29. {
  30. // 请在这里补充代码,完成本关任务
  31. /********** Begin *********/
  32. if(!arr) return NULL;
  33. BiTreeNode* bt=NULL;
  34. for(int i=0 ; i<n; i++){
  35. bt=insertBiSortTree(bt, arr[i]);
  36. }
  37. return bt;
  38. /********** End **********/
  39. }

第2关:二叉排序树应用二

  1. #include "binary_sort_tree.h"
  2. int* InOrder(BiTreeNode* root, int* arr, int &i)
  3. // 功能:实现升序二叉排序树的中序遍历
  4. // 参数:二叉树根节点root,整数数列arr,起始下标i=0
  5. // 返回:中序遍历数列arr
  6. {
  7. // 请在这里补充代码,完成本关任务
  8. /********** Begin *********/
  9. if(!root) return NULL;
  10. InOrder(root->left, arr, i);
  11. arr[i++]=root->data;
  12. InOrder(root->right, arr, i);
  13. return arr;
  14. /********** End **********/
  15. }
  16. bool isOrder(int* arr, int n)
  17. // 功能:判断数列arr是否升序
  18. // 参数:数列arr,数列个数n
  19. // 返回:若升序返回true,否则返回false
  20. {
  21. // 请在这里补充代码,完成本关任务
  22. /********** Begin *********/
  23. for(int j=0 ; j<n-1; j++)
  24. {
  25. if(arr[j+1]<arr[j]) return false;
  26. }
  27. return true;
  28. /********** End **********/
  29. }

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

闽ICP备14008679号