构造二叉搜索树C++

来源:互联网 发布:淘宝怎么买彩票 编辑:程序博客网 时间:2024/05/20 22:37

构造一颗二叉搜索树,树的结构如图(a),下面上代码(最后输出是中序遍历输出的)

#include <iostream>using namespace std;typedef struct BSTree{char node_value;struct BSTree *left;struct BSTree *right;} Tree;/*****构造二叉查找树**********************************************/void  CreateBSTree(Tree *root, char node_value);Tree *CreateBSTree(char *array_list, int array_length);void Print(Tree *root);int main(){Tree *root = NULL;char list[] = {'6', '5', '7', '2', '5', ' ', '8'};root = CreateBSTree(list, 7);cout << "Cearte BSTree." << endl;Print(root);return 0;}Tree *CreateBSTree(char *array_list, int array_length){if(array_length <= 0){return false;}Tree *root = NULL;root = new BSTree();root->left = NULL;root->right = NULL;root->node_value = array_list[0];for(int i = 1; i < array_length; i++){CreateBSTree(root, array_list[i]);}return root;}void  CreateBSTree(Tree *root, char node_value){if (node_value !=' '){if(root == NULL){return ;}if(root->node_value > node_value){if(root->left == NULL){Tree *node = new Tree();node->left = NULL;node->right = NULL;node->node_value = node_value;root->left = node;}else{CreateBSTree(root->left, node_value);}}else{if(root->right == NULL){Tree *node = new Tree();node->left = NULL;node->right = NULL;node->node_value = node_value;root->right = node;}else{CreateBSTree(root->right, node_value);}}}else{Tree *node =NULL;}}void Print(Tree *root){if(root == NULL){return ;}Print(root->left);cout << char(root->node_value) <<endl;Print(root->right);}
图(a)和  输出结果图



0 0
原创粉丝点击