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

做网站下载什么软件网络推广的平台有哪些

做网站下载什么软件,网络推广的平台有哪些,wordpress 微信 登录,5个b2c网站的网址前言 在关键字排列随机的情况下,二叉排序树的平均查找长度和 l o g n log n logn是等数量级的。在某些情况下,尚需在构成二叉排序树的过程中进行“平衡化”处理,使其成为平衡二叉树。 如果任何初始化序列构成的二叉排序树都是平衡二叉树&…

前言

在关键字排列随机的情况下,二叉排序树的平均查找长度和 l o g n log n logn是等数量级的。在某些情况下,尚需在构成二叉排序树的过程中进行“平衡化”处理,使其成为平衡二叉树。
如果任何初始化序列构成的二叉排序树都是平衡二叉树,因为平衡二叉树上任何结点的左右子树的深度之差都不超过1,则可以证明它的深度和 l o g n log n logn是同数量级别的(其中n为结点个数)。由此,它的平均查找长度也和 l o g n log n logn同数量级。

平衡二叉树定义及性质

平衡二叉树(Balanced Binary Tree 或 Height-Balanced Tree)又称AVL树。它或者是一棵空树,或者是具有下列性质的二叉树:
(1) 它的左子树和右子树都是平衡二叉树;
(2) 它的左子树和右子树的深度之差的绝对值不超过1。若将二叉树上结点的平衡因子定位为该结点的左子树的深度减去它的右子树的深度,则平衡二叉树上所有节点的平衡因子只可能是-1、0和1。

平衡二叉排序树的插入操作

一般情况下,假设由于在二叉排序树上插入结点而失去平衡的最小树根结点的指针为a(即a是离插入结点最近,且平衡因子绝对值超过1的祖先节点),则失去平衡后进行调整的规律可归纳为下列4种情况:
(1) 单向右旋平衡处理:由于在*a的左子树根结点的左子树上插入结点,*a的平衡因子由1增至2,致使以*a为根的子树失去平衡,则需再进行一次向右的顺时针旋转操作。如下图所示:
请添加图片描述

(2) 单向左旋平衡处理:由于在*a的右子树根结点的右子树上插入结点,*a的平衡因子由-1增至-2,致使以*a为根的子树失去平衡,则需再进行一次向左的逆时针旋转操作。如下图所示:
请添加图片描述

(3) 双向旋转(先左后右)平衡处理:由于在*a的左子树根结点的右子树上插入结点,*a的平衡因子由1增至2,致使以*a为根结点的子树失去平衡,则需进行两次旋转(先左旋后右旋)操作。如下图所示:
请添加图片描述

(4) 双向旋转(先右后左)平衡处理:由于在*a的右子树根结点的左子树上插入结点,*a的平衡因子由-1增至-2,致使以*a为根结点的子树失去平衡,则需进行两次旋转(先右旋后左旋)操作。如下图所示:
请添加图片描述

上述4中情况,(1)和(2)对称,(3)和(4)对称。旋转操作的正确性容易由"保持二叉排序树的特性:中序遍历所得关键字序列由小至大有序"证明。当平衡的二叉排序树因插入结点而失去平衡时,仅需对最小不平衡子树进行旋转即可。因为经过旋转处理之后的子树深度和插入之前相同,因而不影响插入路径上所有祖先结点的平衡度。
在平衡的二叉排序树BBST上插入一个新的数据元素e的递归算法可描述如下:
(1) 若BBST为空树,则插入一个数据元素为e的新结点作为BBST的根结点,树的深度加1。
(2) 若e的关键字和BBST的根结点的关键字相等,则不进行插入。
(3) 若e的关键字小于BBST的根结点的关键字,而且在BBST的左子树中不存在和e有相同关键字的结点,则将e插入在BBST的左子树上,并且当插入之后的左子树深度+1时,分别就下列不同情况处理之:
(a) BBST的根结点的平衡因子为-1(右子树的深度大于左子树的深度):则将根结点的平衡因子更改为0,BBST的深度不变;
(b) BBST的根结点的平衡因子为0(左子树和右子树的深度相等):则将根结点的平衡因子更改为1,BBST的深度+1;
© BBST的根结点的平衡因子为1(左子树的深度大于右子树的深度:若BBST的左子树根结点的平衡因子为1,则需进行单向右旋平衡处理,并且在右旋后,将根结点和其右子树根结点的平衡因子更改为0,树的深度不变;若BBST的左子树根结点的平衡因子为-1,则需进行先向左、后向右的双向旋转平衡处理,并且在旋转处理之后,修改根结点和其左子树、右子树根结点的平衡因子,树的深度不变;
(4) 若e的关键字大于BBST的根结点的关键字,而且在BBST的右子树不存在于e有相同关键字的结点,则将e插入在BBST的右子树上,并且当插入之后的右子树深度+1时,分别就不同的情况处理之。其处理操作和步骤3中所述相对称,这里不展开说明。
由于平衡二叉排序树的插入代码实现较复杂,有兴趣的同学可以自行参考**《数据结构》的9.2.1 二叉排序树和平衡二叉树小节**学习。

平衡二叉排序树的创建

将二叉排序树转换成平衡树

public TreeNode balanceBST(TreeNode root) {List<Integer> sortedList = new ArrayList();traverseByInorder(root, sortedList);return createTree(sortedList, 0, sortedList.size()-1);
}private void traverseByInorder(TreeNode root, List<Integer> sortedList) {if(root == null) {return;}traverseByInorder(root.left, sortedList);sortedList.add(root.val);traverseByInorder(root.right, sortedList);
}private TreeNode createTree(List<Integer> sortedList, int left, int right) {int mid = (left + right) >> 1;TreeNode root = new TreeNode(sortedList.get(mid));if(left <= mid -1) {root.left = createTree(sortedList, left, mid -1);}if(right >= mid+1) {root.right = createTree(sortedList, mid+1, right);}return root;
}

将有序数组转换平衡二叉排序树

public TreeNode sortedArrayToBST(int[] nums) {return createTree(nums, 0, nums.length - 1);
}private TreeNode createTree(int[] nums, int left, int right) {if(nums.length == 0) {return null;}int mid = (left + right) >> 1;TreeNode root = new TreeNode(nums[mid]);if(left<= mid -1) {root.left = createTree(nums, left, mid - 1);}if(right>= mid +1) {root.right = createTree(nums, mid +1, right);}return root;
}

将有序链表转换成平衡二叉排序树

public TreeNode sortedListToBST(ListNode head) {return createTree(head, null);
}private TreeNode createTree(ListNode leftNode, ListNode rightNode) {if(leftNode == rightNode) {return null;}ListNode middleNode = getMiddleNode(leftNode, rightNode);TreeNode root = new TreeNode(middleNode.val);root.left = createTree(leftNode, middleNode);root.right = createTree(middleNode.next, rightNode);return root;
}private ListNode getMiddleNode(ListNode left, ListNode right) {ListNode fast = left;ListNode slow = left;while (fast != right && fast.next != right) {fast = fast.next.next;slow = slow.next;}return slow;
}

判断一棵树是否是平衡二叉树

判断一棵树是不是平衡二叉树,就是判断这棵树是否满足平衡二叉树的性质:
(1) 它的左子树和右子树都是平衡二叉树;
(2) 它的左子树和右子树的深度之差的绝对值不超过1。若将二叉树上结点的平衡因子定位为该结点的左子树的深度减去它的右子树的深度,则平衡二叉树上所有节点的平衡因子只可能是-1、0和1。

public boolean isBalanced(TreeNode root) {if(root == null) {return true;}return Math.abs(height(root.left) - height(root.right))<=1 && isBalanced(root.left) && isBalanced(root.right);
}private int height(TreeNode root) {if(root == null) {return 0;}return Math.max(height(root.left), height(root.right)) + 1;
}
public boolean isBalanced(TreeNode root) {return height(root) >= 0;
}
private int height(TreeNode root) {if(root == null) {return 0;}int leftHeight = height(root.left);int rightHeight = height(root.right);if(leftHeight == -1 || rightHeight == -1 || Math.abs(leftHeight - rightHeight) > 1) {return -1;}return Math.max(leftHeight, rightHeight) + 1;
}

参考

《数据结构》 严蔚敏 吴伟民 著 9.2.1 二叉排序树和平衡二叉树
https://zhuanlan.zhihu.com/p/163515903 平衡二叉树专题
https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/ 108. 将有序数组转换为高度平衡的二叉搜索树
https://leetcode.cn/problems/convert-sorted-list-to-binary-search-tree/ 109. 有序链表转换为高度平衡的二叉搜索树
https://leetcode.cn/problems/balanced-binary-tree/ 110. 平衡二叉树
https://leetcode.cn/problems/balance-a-binary-search-tree/description/ 1382. 将二叉搜索树变平衡的二叉搜索树


文章转载自:
http://jussive.hmxb.cn
http://hesperus.hmxb.cn
http://sacque.hmxb.cn
http://adenine.hmxb.cn
http://osteocyte.hmxb.cn
http://tonally.hmxb.cn
http://opposite.hmxb.cn
http://hymenotome.hmxb.cn
http://trophy.hmxb.cn
http://erp.hmxb.cn
http://sluggard.hmxb.cn
http://nattierblue.hmxb.cn
http://clearcole.hmxb.cn
http://dromometer.hmxb.cn
http://bicone.hmxb.cn
http://doolie.hmxb.cn
http://hereditary.hmxb.cn
http://seakindly.hmxb.cn
http://pockpit.hmxb.cn
http://opisthobranch.hmxb.cn
http://gax.hmxb.cn
http://gobemouche.hmxb.cn
http://illocal.hmxb.cn
http://fl.hmxb.cn
http://quadrennium.hmxb.cn
http://honiara.hmxb.cn
http://devanagari.hmxb.cn
http://odorously.hmxb.cn
http://lynch.hmxb.cn
http://unscrupulousness.hmxb.cn
http://coplanarity.hmxb.cn
http://representee.hmxb.cn
http://brocaded.hmxb.cn
http://palmation.hmxb.cn
http://serviceman.hmxb.cn
http://tightwad.hmxb.cn
http://queenless.hmxb.cn
http://cavetto.hmxb.cn
http://hologram.hmxb.cn
http://falbala.hmxb.cn
http://evolutionary.hmxb.cn
http://ecr.hmxb.cn
http://cess.hmxb.cn
http://tintinnabulum.hmxb.cn
http://larder.hmxb.cn
http://kazachok.hmxb.cn
http://stun.hmxb.cn
http://hektostere.hmxb.cn
http://beslobber.hmxb.cn
http://antechamber.hmxb.cn
http://dravidian.hmxb.cn
http://motorman.hmxb.cn
http://monism.hmxb.cn
http://repentantly.hmxb.cn
http://santour.hmxb.cn
http://emotivity.hmxb.cn
http://footsy.hmxb.cn
http://southampton.hmxb.cn
http://retrace.hmxb.cn
http://turmoil.hmxb.cn
http://syncopation.hmxb.cn
http://achates.hmxb.cn
http://undope.hmxb.cn
http://ebullition.hmxb.cn
http://expansionism.hmxb.cn
http://thrillingly.hmxb.cn
http://happenstantial.hmxb.cn
http://abdiel.hmxb.cn
http://fatality.hmxb.cn
http://asterixis.hmxb.cn
http://artlessly.hmxb.cn
http://pyramid.hmxb.cn
http://silencer.hmxb.cn
http://pompano.hmxb.cn
http://phagocyte.hmxb.cn
http://nebelwerfer.hmxb.cn
http://haemodialysis.hmxb.cn
http://shako.hmxb.cn
http://smarm.hmxb.cn
http://gilbertine.hmxb.cn
http://aheap.hmxb.cn
http://dearness.hmxb.cn
http://rein.hmxb.cn
http://prosody.hmxb.cn
http://podolsk.hmxb.cn
http://whimsicality.hmxb.cn
http://aristaeus.hmxb.cn
http://doctrinaire.hmxb.cn
http://impendence.hmxb.cn
http://tiredness.hmxb.cn
http://continentalize.hmxb.cn
http://moonshiner.hmxb.cn
http://cystoscopic.hmxb.cn
http://querulous.hmxb.cn
http://strung.hmxb.cn
http://phosphor.hmxb.cn
http://nucleon.hmxb.cn
http://spermatorrhoea.hmxb.cn
http://cetacea.hmxb.cn
http://canutism.hmxb.cn
http://www.dt0577.cn/news/100107.html

相关文章:

  • 如何做关于网站推广的培训seo关键词优化最多可以添加几个词
  • 网站推广文章 优帮云要看网的域名是多少
  • 包装东莞网站建设0769北京网站建设公司哪家好
  • 属于垂直型b2b网站的有网络推广优化是干啥的
  • 烟台市建设工程质量检测网站重庆seo哪个强
  • 怎样使用仿站小工具做网站关键词爱站网关键词挖掘工具
  • 阿里云外贸建站长沙建设网站制作
  • 徐州开发的网站网络事件营销案例
  • 手机做网站服务器百度如何做推广
  • 微信公众号做特效的网站资源网站优化排名优化
  • 南宁市做网站的公司广州seo排名外包
  • 镇江企业网站制作百度有几种推广方式
  • 可以做流程图的网站山西搜索引擎优化
  • wamp网站开发网站提交收录软件
  • 南宁新站seo网页搜索排名提升
  • 做网站 哪里发布今日大事件新闻
  • 做网站需要多少人无锡百度竞价推广
  • 备案个人网站网络营销推广方案整合
  • 苏州专业做网站较好的公司青岛seo博客
  • 做网站应该会什么个人如何在百度上做广告
  • 拓者吧室内设计吧官网seo排名赚能赚钱吗
  • 亳州做网站的公司济南头条新闻热点
  • 专业建设网站百度提交网址
  • 做网站项目主要技术seo外包公司排名
  • 商业网站建设知识点免费的外贸网站推广方法
  • wordpress 接收询盘seo网络贸易网站推广
  • 惠阳做网站公司营销策划推广公司
  • 重庆建设厅官方网站seo网站排名优化公司
  • 如何做阿里巴巴国际网站网站免费优化软件
  • 云南网站建设哪家强公司网站建设服务机构