Unique Binary Search Trees II
来源:互联网 发布:网络教育档案放在哪里 编辑:程序博客网 时间:2024/05/21 17:06
Description:
Given n, generate all structurally unique BST’s (binary search trees) that store values 1…n.
For example, Given n = 3, your program should return all 5 unique BST’s shown below.
分析:找到一个根节点,剩余的数分别划分为左右子树。
代码:
#include <iostream>#include <vector>#define Elementype intusing namespace std;typedef struct TreeNode //树结点{ Elementype val; TreeNode *left; TreeNode *right; TreeNode(Elementype x) : val(x), left(nullptr), right(nullptr) {}} *Tree;vector<Tree> BuildTree(int start, int end){ vector<Tree> tree; if (start > end) { tree.push_back(nullptr); } for (int k = start; k <= end; k++) { vector<Tree>leftTree = BuildTree(start, k - 1); vector<Tree>rightTree = BuildTree(k + 1, end); for (auto i : leftTree) { for (auto j : rightTree) { Tree root = new TreeNode(k); root->left = i; root->right = j; tree.push_back(root); } } } return tree;}int main(){ int n; cout << "请输入整数n: "; cin >> n; cout << "输出根节点: " << endl; vector<Tree> result = BuildTree(1,n); for (auto it = result.begin(); it != result.end(); it++) cout << (*it)->val << " "; cout << endl; system("pause"); return 0;}
测试:
0 0
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees (& II)
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Android属性动画详解(一),属性动画基本用法
- C语言函数调用
- 查看linux中的TCP连接数
- swift下完成tableviewCell的注册创建
- プログラミング言語 Scheme の解説
- Unique Binary Search Trees II
- 【hihoCoder】#1082 : 然而沼跃鱼早就看穿了一切
- 笔记(5):卷积神经网络(3)
- 对象方法 nil值
- KafkaOffsetMonitor源码及存储浅析
- JAVA 学习模块五:排序与查找
- idea 插件描述
- echart统计图表折线图demo
- 互联网架构,如何进行容量设计?