浙江网站建设流程wordpress商城+微信

张小明 2026/1/10 7:51:26
浙江网站建设流程,wordpress商城+微信,建设网站的相关软件,营销型企业网站建设板块设置二叉查找树适合动态查找#xff0c;即随时可能有插入和删除操作Binary Search Tree的定义 对于一颗非空BST#xff0c;其左子树上的所有节点的data小于其根节点的data#xff0c;其右子树上的所有节点的data大于其根节点的dataBST的非空左子树和非空右子树也是BST 利用BST左…二叉查找树适合动态查找即随时可能有插入和删除操作Binary Search Tree的定义对于一颗非空BST其左子树上的所有节点的data小于其根节点的data其右子树上的所有节点的data大于其根节点的dataBST的非空左子树和非空右子树也是BST利用BST左小于右的特性可以用来找到BST中两个节点的最近的共同的祖先节点这里可以把节点自己也算作祖先从根节点开始若两个节点的key都小于当前节点的key说明公共祖先在左子树上递归左子树若两个节点的key都大于当前节点的key说明公共祖先在右子树上递归右子树否则说明公共祖先就是这个节点BST查找特定key递归实现假设在函数外有一个指针接收找到的节点的地址没找到返回空对于当前访问的节点若不为空有三种要查找的key小于当前节点则递归查找左子树要查找的key大于当前节点则递归查找右子树要查找的key等于当前节点则返回当前节点的指针TreeNode* BSTfind(TreeNode* t,DataType key){ if(!root)return nullptr; if(keyt-data)return BSTfind(t-left,key); //1. else if(keyt-data)return BSTfind(t-right,key); //2. else return t; //3. }注意到这是尾递归所以可以写成迭代函数迭代实现TreeNode* BSTfind(TreeNode* t,DataType key){ TreeNode* pt; //用p指针来访问节点 while(p){ if(keyp-data)pp-left; //1. else if(keyp-data)pp-right; //2. else break; //3. } return p; }BST查找最小值和最大值根据BST的特性一颗BST的最小值在最左端的节点上最大值在最右端的节点上也是尾递归递归实现TreeNode* findMin(TreeNode* t){ //找最小值 if(!t)return nullptr; //空树的情况 if(t-left)return findMin(t-left); //没到最左端 else return t; //到了最左端 } TreeNode* findMax(TreeNode* t){ if(!t)return nullptr; if(t-right)return findMax(t-right); else return t; }迭代实现TreeNode* findMin(TreeNode* t){ if(!t)return nullptr; while(t-left){ tt-left; } return t; } TreeNode* findMax(TreeNode* t){ if(!t)return nullptr; while(t-right){ tt-right; } return t; }BST的插入与查找类似若走到空节点说明需要在这里插入若走到与key相等的节点则根据实际需要处理插入失败或插在子树的根节点上返回已经插入了的根节点bool isInserttrue; //判断是否插入成功 TreeNode* BSTinsert(TreeNode* t,DataType key){ if(!t){ //空节点 tnew TreeNode; t-datakey; t-leftt-rightnullptr; return t; } if(keyt-data)t-leftBSTinsert(t-left); //1. else if(keyt-data)t-rightBSTinsert(t-right); //2. else isInsertfalse; //3. return t;也可以看作是尾递归BST的删除与查找类似若走到与key相等的节点说明需要在这里删除若走到空节点则说明BST中找不到需要删除的节点返回已经删除了的根节点若找到了需要删除的节点若该节点左子树和右子树都为空则返回空其实就是返回空左子树和空右子树其中之一可合并为下面两种情况若该节点存在左子树右子树为空则返回左子树回收该节点若该节点存在右子树左子树为空则返回右子树回收该节点若左右子树都不空有两种方案找到左子树上的最大值节点leftMax与该节点交换data然后递归删除leftMax找到右子树上的最小值节点rightMin与该节点交换data然后递归删除rightMinleftMax和rightMin都是存在空子树的情况删除比较简单bool isDeletetrue; TreeNode* BSTdelete(TreeNode* t,key){ if(!t){ //找不到要删除的节点 isDeletefalse; return t; //不做处理直接返回 } if(keyt-data)t-leftBSTdelete(t-left,key); else if(keyt-data)t-rightBSTdelete(t-right,key); else { if(t-leftt-right){ //左右子树都不空 TreeNode* leftMin; leftMaxfindMin(t-left); t-dataleftMin-data; //和t交换 t-leftBSTdelete(t-left,leftMin-data); //删除leftMax } else if(t-left){ //左子树不空 TreeNode* tmpt; tt-left; delete tmp; //回收 } else { TreeNode* tmpt; tt-right; delete tmp; } } return t; //返回已经删除了的根节点 }BST的缺点随着插入和删除操作增多可能出现斜二叉树这种极端情况因为BST的查找和删除操作的最坏时间复杂度都是树的高度所以树的高度越小越好优化平衡二叉树
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

商城网站的开发怎么做专业的建设机械网站制作

Termius中文版终极指南:告别英文SSH客户端的困扰 【免费下载链接】Termius-zh_CN 汉化版的Termius安卓客户端 项目地址: https://gitcode.com/alongw/Termius-zh_CN 还在为移动端SSH客户端的英文界面而烦恼吗?面对满屏的英文菜单和提示&#xff0…

张小明 2026/1/10 5:09:58 网站建设

网站建设维护升级网站设计语言有哪些

“服务器里 20TB 用户日志、50 万条运营记录,怎么财务说不算资产?” 这是很多企业老板面对数据资产化时的困惑 —— 数据越存越多,硬盘快满了,可偏偏迈不过 “入表” 这道坎。其实问题不在数据体量,而在没让数据 “活”…

张小明 2026/1/10 5:09:56 网站建设

河南省网站建设意见什么 a wordpress

无需重装系统:Miniconda-Python3.10镜像秒配CUDA与cuDNN版本 在人工智能实验室的深夜,你是否经历过这样的场景:为了复现一篇论文,花了一整天时间配置环境,却卡在 libcudart.so 找不到;或者团队成员跑来问“…

张小明 2026/1/10 5:09:54 网站建设

广西南宁网站排名优化校园失物招领网站建设

特性 工作输入电压范围:2.5V至5.5V 固定输出电压: 0.9V、1.3V、2.1V、2.7V、2.9V、3.1V、3.2V、3.6V、4.2V和5.0V 可调输出范围:0.8V至5.0V 输出电压精度:25C时士2% 低输出噪声:30pVRmms(典型值) 低压差电压:在300mA时为270mV(典型值) 高PSRR:75dB(典型值)1kHz 低负载供电电流:…

张小明 2026/1/10 7:10:08 网站建设

泰州市做网站如何使用上线了app建设网站

nanopi-openwrt USB无线网卡终极配置完全攻略 【免费下载链接】nanopi-openwrt Openwrt for Nanopi R1S R2S R4S R5S 香橙派 R1 Plus 固件编译 纯净版与大杂烩 项目地址: https://gitcode.com/GitHub_Trending/nan/nanopi-openwrt 还在为nanopi设备无法连接WiFi而烦恼吗…

张小明 2026/1/10 7:10:06 网站建设

江西网站建设销售电话网站在建设时不容忽略的一些细节

Wan2.2-T2V-A14B模型参与电影后期特效辅助制作的可能性 在当代影视工业中,一部视效大片的诞生往往伴随着数月甚至数年的后期打磨。从概念设计到最终渲染,每一个镜头背后都是建模、动画、灯光、合成等环节的精密协作。然而,这种高精度流程也带…

张小明 2026/1/9 16:30:03 网站建设