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

上海网站设计团队wordpress标签关注

上海网站设计团队,wordpress标签关注,宁波专业网站定制制作服务,南京网站开发选南京乐识好什么是二叉搜索树#xff1f; 顾名思义#xff0c;一颗二叉搜索树是基于二叉树来组织的#xff0c;它包括许多动态集合操作#xff08;Search#xff0c;MiniNum, MaxiNum, Prodecessor, Successor, Insert 和Delete等#xff09;。二叉搜索树上的基本操作所花费的时间与…什么是二叉搜索树 顾名思义一颗二叉搜索树是基于二叉树来组织的它包括许多动态集合操作SearchMiniNum, MaxiNum, Prodecessor, Successor, Insert 和Delete等。二叉搜索树上的基本操作所花费的时间与这棵树的高度成正比对呀有n个节点组成的完全二叉树来说这些操作的最坏的运行时间是O(lg n。 如图所示是一个搜索二叉树的结构。一个二叉树每一个节点就是一个对象包含的属性有左结点left右结点right和父结点parent以及这个节点的关键值key。在上图中根节点的关键值是6左结点是5右结点是8父节点为空。这是一颗完全除叶子结点外所有节点都存在左右结点的搜索二叉树要注意的是二叉搜索树的左结点值小于等于根结点的值而右结点的值大于等于根结点的值。搜索二叉树的性质允许我们通过一个简单的递归算法中序遍历就可以得到树中的所有关键字。一个二叉树结构在C中可以表示成如下 struct BinaryTreeNode{int val; //keyBinaryTreeNode *left; //left NodeBinaryTreeNode *right; //right Node }; 搜索二叉树的遍历 中序遍历左——根——右根结点在中间遍历上图中二叉树经过中序遍历得到的是4556789. 前序遍历根——左——右根结点在前面的遍历上图中二叉树经过前序遍历得到的是6545878。 后序遍历左——右——根根结点在后面的遍历上图中二叉树经过后序遍历得到的是4557986. //前序遍历二叉树 void TreeWalk(BinaryTreeNode *root) { if(rootnullptr) return;vectorinttree;tree.push_back(root-val);if(root-left) TreeWalk(root-left);if(root-right) TreeWalk(root-right);return; }//中序遍历二叉树 void TreeWalk(BinaryTreeNode *root) { vectorinttree; if(root-left!nullptr)TreeWalk(root-left);tree.push_back(root-val);TreeWalk(root-right);return; }//后序遍历二叉树 void TreeWalk(BinaryTreeNode *root) { vectorinttree; if(root-left!nullptr)TreeWalk(root-left);TreeWalk(root-right);tree.push_back(root-val);return; } 查询二叉搜索树 如何查询二叉搜索树中的最小值最大值或者任意一个值 查询最小值根据二叉搜索树的性质可以知道搜索二叉树的最小值为最左边叶子结点的值。同理我们知道二叉搜索树的最大值为最右边叶子结点的值。代码如下 //最小值 int GetMiniNum(BinaryTreeNode* root) { while(root-left!nullptr) rootroot-left;return root-val; }//最大值 int GetMaxiNum(BinaryTreeNode *root) {while(root-right!nullptr) rootroot-right;return root-val; } 查询二叉搜索树中的任意一个值相当于数组查询的二分法时间复杂度最差为O(depthdepth为二叉树的深度。代码如下 BinaryreeNode * Search(BinaryTreeNode *root,int k) {if(rootnullptr||root-valk) return root;if(kroot-val)Search(root-left,k);elseSearch(root-right,k); }二叉搜索树的插入和删除 要将一个新值x插入到二叉搜索树中需要调用Search操作。 void InsertTreeNode(BinaryTreeNode *root, k) {BinaryTreeNode *ToBeInsertnew BinaryTreeNode(k);BinaryTreeNode *pCurroot;while(pNode!nullptr){ BinaryTreeNode *pNodepCur;if(pCur-valk){ pCurpCur-left;if(pCurnullptr)pCur-leftToBeInsert;}else {pCurpCur-right;if(pCurnullptr)pCur-rightToBeInsert;}} }
http://wiki.neutronadmin.com/news/81589/

相关文章:

  • 合肥网站排名优化公司哪家好上海软装设计公司排名
  • xampp做的网站能搜索吗福州网络营销推广产品优化
  • 如何学习做网站wordpress qq分享插件
  • 网站浏览速度做直播网站用什么系统
  • 豫建设标去哪个网站好发网站建设
  • 旅游最好的网站建设江门外贸网站建设
  • 做网站图片要求乐清做网站哪家好
  • 烟台制作网站有哪些公司专业做网站
  • 找产品代理去哪个网站购房网
  • 网站建设策划结束语电商网站简单html模板下载
  • 用网站免费模板做网站要会什么网站友链查询源码
  • 网站怎么做域名跳转王也王志飞
  • 性能网站建设网站建设设计策划
  • 湖南建设厅网站不良记录个人微信公众号收费吗
  • 网站移动端自适应腾讯公司做的购物网站
  • 顺德手机网站设计信息开发一个手游需要多少钱
  • 网站底部留言代码ftp上传文件到网站
  • 怎样建设学校网站山东建设厅网站 高英
  • 如何注册国外网站天津建设工程合同备案网站
  • 长沙做痔疮东大医院de网站手机网站知识
  • 重庆建设银行官方网站首页怎么在拼多多上开网店卖东西
  • 金溪网站建设推广网站建设与管理课程的目标
  • 外贸网站 海外推广网站网页怎么设计
  • 梅州正规的免费建站深圳网站搜索排名
  • 建设网站的调研报告东莞做网站网站
  • 免费自助站制作在线深圳最新消息
  • 网站设计公司佛山深圳app开发公司有哪些
  • 做网站 做应用海口网站公司
  • 空包网站做红章底单做网站一定要实名认证吗
  • 界面简洁的网站vr全景网站开发