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

有没有代做模型的网站百度一下百度官网

有没有代做模型的网站,百度一下百度官网,php是做网站美工的吗,网站网页直播怎么做目录 资源已上传 实现代码 测试代码 资源已上传 部分图片 实现代码 注意判断是否为红黑树的代码实现&#xff0c;实现代码中红黑树的删除 #pragma once #include<iostream> using namespace std;enum Color_Type {Red,Black };template<class K,class V> str…

目录

资源已上传

实现代码

测试代码


资源已上传

部分图片

实现代码

注意判断是否为红黑树的代码实现,实现代码中红黑树的删除

#pragma once
#include<iostream>
using namespace std;enum Color_Type
{Red,Black
};template<class K,class V>
struct RBTreeNode
{pair<K, V> _kv;RBTreeNode* _parent;RBTreeNode* _left;RBTreeNode* _right;Color_Type _color;RBTreeNode(const pair<K, V> kv): _kv(kv), _parent(nullptr), _left(nullptr), _right(nullptr), _color(Red){}};template<class K, class V>
class RBTree
{typedef RBTreeNode<K, V> Node;
private:Node* _root;
public:RBTree():_root(nullptr){}bool Insert(const pair<K, V>& kv){if (_root == nullptr){_root = new Node(kv);_root->_color = Black;return true;}Node* cur = _root;//指向当前节点的位置Node* parent = nullptr;//当前节点的父节点//找到插入位置while (cur){if (cur->_kv.first < kv.first) {parent = cur;cur = cur->_right;}else if (cur->_kv.first > kv.first) {parent = cur;cur = cur->_left;}else {return false;}}cur = new Node(kv);cur->_color = Red;if (cur->_kv.first < parent->_kv.first) {parent->_left = cur;cur->_parent = parent;}else{parent->_right = cur;cur->_parent = parent;}//父节点为红色,插入后还需做调整while (parent && parent->_color == Red){Node* grandfather = parent->_parent;if (parent == grandfather->_left){Node* uncle = grandfather->_right;if (uncle && uncle->_color == Red){// 变色parent->_color = uncle->_color = Black;grandfather->_color = Red;// 继续向上处理cur = grandfather;parent = cur->_parent;}else//uncle不存在或uncle为黑{if (cur == parent->_left){//	  g//	p//crotateR(grandfather);parent->_color = Black;grandfather->_color = Red;}else{//	g//p	//	crotateL(parent);rotateR(grandfather);cur->_color = Black;grandfather->_color = Red;}break;}}else{Node* uncle = grandfather->_left;// u存在且为红if (uncle && uncle->_color == Red){// 变色parent->_color = uncle->_color = Black;grandfather->_color = Red;// 继续向上处理cur = grandfather;parent = cur->_parent;}else{if (cur == parent->_right){// g//	  p//       crotateL(grandfather);grandfather->_color = Red;parent->_color = Black;}else{// g//	  p// crotateR(parent);rotateL(grandfather);cur->_color = Black;grandfather->_color = Red;}break;}}}_root->_color = Black;return true;}bool IsBalance(){return _IsBalance(_root);}int Height(){return _Height(_root);}bool checkColor(Node* root, int blacknum, int basenum){if (root == nullptr){if (blacknum != basenum){return false;}return true;}if (root->_color == Black){++blacknum;}if (root->_parent && root->_parent->_color == Red && root->_color == Red){cout << root->_kv.first << "出现连续红色节点" << endl;return false;}return  checkColor(root->_left, blacknum, basenum) && checkColor(root->_right, blacknum, basenum);}
private:void rotateL(Node* parent){Node* subR = parent->_right;Node* subRL = subR->_left;Node* pparent = parent->_parent;//1.建立subRL与parent之间的关系//左子树滑动parent->_right = subRL;if (subRL) {subRL->_parent = parent;}//2.建立subR和parent之间的关系//更新右子树的左子树subR->_left = parent;parent->_parent = subR;//3.建立pparent和subR之间的关系//与上一个节点建立连接if (parent == _root){_root = subR;subR->_parent == nullptr;}else{subR->_parent = pparent;if (parent = pparent->_left) {pparent->_left = subR;}else {pparent->_right = subR;}}}void rotateR(Node* parent){Node* subL = parent->_left;Node* subLR = subL->_right;Node* pparent = parent->_parent;//滑动parent->_left = subLR;if (subLR) {subLR->_parent = parent;}//更新左子树的右子树subL->_right = parent;parent->_parent = subL;if (parent == _root) {_root = subL;subL->_parent = nullptr;}else {subL->_parent == pparent;if (parent = pparent->_left) {pparent->_left = subL;}else {pparent->_right = subL;}}}int _Height(Node* root){if (!root) {return 0;}int left = _Height(root->_left);int right = _Height(root->_right);return left > right ? left + 1 : right + 1;}bool _IsBalance(Node* root){if (root == nullptr){return true;}if (root->_color != Black){return false;}int basenum = 0;Node* cur = _root;while (cur){if (cur->_color == Black) {++basenum;}cur = cur->_left;}return checkColor(root, 0, basenum);}};

测试代码

#include "RB_tree.h"
#include<vector>int main()
{const int N = 10;vector<int> v;v.reserve(N);srand(time(0));for (size_t i = 0; i < N; i++){v.push_back(i);}for (auto i : v){cout << i << " ";}cout << endl;RBTree<int, int> rbt;for (auto e : v){rbt.Insert(make_pair(e, e));cout << "Insert:" << e << endl;}cout << rbt.Height() << endl;if (rbt.IsBalance()){cout << "ok" << endl;}return 0;
}

http://www.hkea.cn/news/997512/

相关文章:

  • 做网站多久天津seo网站管理
  • 建设局查询网站网络上市场推广
  • 怎么做装修网站b2b多平台一键发布
  • ASP做网站源代码大专网络营销专业好不好
  • 网络公司网站 优帮云做网站排名服务热线
  • 制作网页设计软件列表案例谷歌seo 优化
  • wordpress网站备案上海搜索推广
  • 网站建设套餐有哪些安卓在线视频嗅探app
  • 做电影网站要买什么重庆seo网站哪家好
  • 广州北京网站建设公司网站外部优化的4大重点
  • 网站建设书优化大师是干什么的
  • 优秀的网站建设公司百度指数人群画像
  • wordpress企业中文模板太原seo哪家好
  • 广东网广东网站建设网站推广方案模板
  • 网站运营知识快手seo
  • 咖啡公司网站建设策划书微信营销方式
  • 柳江区城乡住房建设局网站上海seo优化服务公司
  • 西城企业网站建设企业网站怎么优化
  • 初学者做动态网站项目例子游戏特效培训机构排名
  • 汽车类网站搭建直链平台
  • 做网站遇到的困难总结网络营销软件代理
  • 做网站登录论坛外链代发
  • 东营专业网站建设公司排行青岛谷歌优化公司
  • 公众号和网站先做哪个口碑营销的形式
  • 长沙企业建网站费用关键词搜索推广排行榜
  • 怎么做网站端口代理沧州网络推广外包公司
  • php wordpress 目录seo课程培训机构
  • 常州网站建设方案优化引流app推广软件
  • 网络营销网站建设实训网络营销步骤
  • 网站都有后台吗百度竞价开户公司