赞
踩
- #include "binary_sort_tree.h"
-
- BiTreeNode* insertBiSortTree(BiTreeNode* root, int key)
- // 功能:实现向升序二叉排序树插入元素
- // 输入:待插入元素key
- // 返回:升序二叉排序树根节点
- {
- // 请在这里补充代码,完成本关任务
- /********** Begin *********/
- if (root == NULL)
- {
- BiTreeNode *newNode = new BiTreeNode(key);
- return newNode;
- }
- if (root->data>key) {
- if(root->left) insertBiSortTree(root->left, key);
- else root->left=new BiTreeNode(key);
-
- }else
- {
- if(root->right) insertBiSortTree(root->right, key);
- else root->right=new BiTreeNode(key);
- }
- return root;
- /********** End **********/
- }
-
- BiTreeNode* creatBiSortTree(int* arr, int n)
- // 功能:实现创建升序二叉排序树
- // 输入:无序整数数列arr,数列个数n
- // 返回:升序二叉排序树根节点
- {
- // 请在这里补充代码,完成本关任务
- /********** Begin *********/
- if(!arr) return NULL;
-
- BiTreeNode* bt=NULL;
- for(int i=0 ; i<n; i++){
- bt=insertBiSortTree(bt, arr[i]);
- }
- return bt;
- /********** End **********/
- }
-
- #include "binary_sort_tree.h"
-
- int* InOrder(BiTreeNode* root, int* arr, int &i)
- // 功能:实现升序二叉排序树的中序遍历
- // 参数:二叉树根节点root,整数数列arr,起始下标i=0
- // 返回:中序遍历数列arr
- {
- // 请在这里补充代码,完成本关任务
- /********** Begin *********/
- if(!root) return NULL;
- InOrder(root->left, arr, i);
- arr[i++]=root->data;
- InOrder(root->right, arr, i);
- return arr;
- /********** End **********/
- }
-
- bool isOrder(int* arr, int n)
- // 功能:判断数列arr是否升序
- // 参数:数列arr,数列个数n
- // 返回:若升序返回true,否则返回false
- {
- // 请在这里补充代码,完成本关任务
- /********** Begin *********/
- for(int j=0 ; j<n-1; j++)
- {
- if(arr[j+1]<arr[j]) return false;
- }
- return true;
-
- /********** End **********/
- }
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。