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

专门卖医疗器械的网站微信开发者工具打不开

专门卖医疗器械的网站,微信开发者工具打不开,app开发科技网站建设,做网站ui去哪儿接私活一、引言 在面试地平线的时候,聊到了二叉搜索树,让手撕二叉搜索树,以下是要求 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.yayakq.cn/news/243425/

相关文章:

  • 如何建外贸网站成都手机wap网站制作
  • 做一个购物网站需要多久建材在哪里做网站好
  • 电子工程设计网站如何建立企业网站及企业网站推广
  • 资阳做网站贸易公司网站建设方案
  • 自动建站网站源码标书制作员有前途吗
  • 免费企业网站cms建设网站后如何做后台
  • 网站开发与维护课程设计网站建设功能报价表
  • 网站建设中端口号的作用是什么广州市住房城乡建设部门户网站
  • 彩票网站搭建多钱学校网页设计方案
  • 我国网站无障碍建设仍处于wordpress网站建设中
  • 网站建设 会议主持稿自动推广软件下载
  • 百度官方免费下载安装上海网站建设乐云seo
  • 怎么用链接进自己做的网站吗网站推广一站式服务
  • 玉溪网站建设现状网站优化知识
  • 专业网站建设制作h5 建站网站 移动端
  • 资阳市建设局网站在线做头像
  • 成都网站平台建设给公司做网站风险
  • 无网站如何做淘宝客网站被降权怎么恢复
  • 怎样建网站 步骤图片设计制作软件
  • 手机网站制作代理五合一网站做优化好用吗
  • 网站建设用哪种语言好wordpress新浪的图床
  • 网络商城网站建设内蒙古建设工程交易中心网站
  • 净化网络环境网站该怎么做织梦做的网站后台
  • 可以用来做论文引用的网站网上最好购物网站
  • 语言文字建设网站三亚最新发布
  • 社保网站上怎么做减员小游戏不用实名认证的游戏
  • 广西建设工会网站网络组建视频
  • 建设一个好的网站做手机网站用什么程序好
  • 门户网站个人可以做西部数码的vps云主机如何访问网站
  • 青岛机关建设网站wordpress项目下载文件