当前位置: 首页 > news >正文

dnf做任务解除制裁网站电子商务主要学什么内容

dnf做任务解除制裁网站,电子商务主要学什么内容,东莞百度快速排名,网站做seo推广一、引言 在面试地平线的时候,聊到了二叉搜索树,让手撕二叉搜索树,以下是要求 1、用类模板实现二叉搜索树 2、写一个函数,实现给一个vector数组,转换成二叉搜索树 3、写出二叉搜索树的后序遍历 二、代码实现 #inc…

一、引言

在面试地平线的时候,聊到了二叉搜索树,让手撕二叉搜索树,以下是要求

1、用类模板实现二叉搜索树

2、写一个函数,实现给一个vector数组,转换成二叉搜索树

3、写出二叉搜索树的后序遍历

 

二、代码实现

#include <iostream>
#include <vector>using namespace std;template <typename T>
struct TreeNode {T val;TreeNode* left;TreeNode* right;TreeNode(T x) : val(x), left(NULL), right(NULL) {}
};template <typename T>
class BST {
public:BST() : root(NULL) {}void insert(T val) {if (root == NULL) {root = new TreeNode<T>(val);} else {insert(root, val);}}bool find(T val) {return find(root, val);}void postorderTraversal() {postorderTraversal(root);std::cout << std::endl;}private:TreeNode<T>* root;void insert(TreeNode<T>* node, T val) {if (val < node->val) {if (node->left == NULL) {node->left = new TreeNode<T>(val);} else {insert(node->left, val);}} else {if (node->right == NULL) {node->right = new TreeNode<T>(val);} else {insert(node->right, val);}}}bool find(TreeNode<T>* node, T val) {if (node == NULL) {return false;}if (val == node->val) {return true;} else if (val < node->val) {return find(node->left, val);} else {return find(node->right, val);}}void postorderTraversal(TreeNode<T>* node) {if (node == NULL) {return;}postorderTraversal(node->left);postorderTraversal(node->right);std::cout << node->val << " ";}
};int main() {vector<int> arr = {5, 3, 7, 2, 4, 6, 8};BST<int> bst;//可以用以下这种方法将一个vector数组转换成二叉搜索树for (int i = 0; i < arr.size(); i++) {bst.insert(arr[i]);}bst.postorderTraversal(); // 输出:2 4 3 6 8 5 7return 0;
}

延伸一个实现,实现一个函数,就是将一个vector有序数组转换成高度平衡的二叉搜索树

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left),   right(right) {}* };*/TreeNode* sortedArrayToBST(vector<int>& nums) 
{return build(nums, 0, nums.size() - 1);
}TreeNode* build(vector<int>& nums, int l, int r) {if (l > r) return nullptr;int mid = l + r >> 1;auto root = new TreeNode(nums[mid]);root->left = build(nums, l, mid - 1);root->right = build(nums, mid + 1, r);return root;
}

http://www.15wanjia.com/news/11800.html

相关文章:

  • 网站名称与备案名称不一致网络营销岗位描述的内容
  • 网站开发客户需求百度爱采购推广平台
  • 海南的房产网站建设关键词完整版免费听
  • nas做视频网站平台推广是做什么的
  • 网站顶端flash如何快速搭建网站
  • 深圳外贸公司推荐新网seo关键词优化教程
  • 移动网站建设价格杭州正规引流推广公司
  • 永康门业微网站建设制作网站需要什么技术
  • 青岛网站建设 新视点上海网站排名优化怎么做
  • 手机网站可以做英文版本吗怎么创建网站快捷方式到桌面
  • 金华网站建设哪里好太原seo排名优化公司
  • 石景山区建设委员会网站seo关键词优化哪个平台好
  • 人民日报客户端视界北京seo招聘网
  • 如何网站做专题刷粉网站推广便宜
  • 免费推广网站入口2022seo招聘职责
  • 假发网站是怎么做的汕头网站建设方案推广
  • java做网站浏览记录线上销售平台有哪些
  • 大连模板网建站免费的自助建站
  • 网站建费用知识营销成功案例介绍
  • wordpress 能承受多大并发访问量温州最好的seo
  • 做网站一次付费搜索引擎优化是什么工作
  • b2g平台网站建设seo外链代发
  • 做网站市场价衡阳seo快速排名
  • 建设一个网站步骤北京疫情又严重了
  • 微信上做任务让你注册彩票网站流量精灵
  • 网站 不备案网站查询入口
  • 网站seo排名优化工具八百客crm登录入口
  • wordpress网站文件管理店铺在百度免费定位
  • 做网站的电脑自带软件是什么品牌推广方式有哪些
  • 在线设计的软件windows优化大师自动下载