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

光速网络网站口碑营销的成功案例

光速网络网站,口碑营销的成功案例,网站可以跳转备案吗,微购物网站建设【二叉树】如何构建一个包含大量随机数节点的二叉树测试用例 前言一、案例准备二、自动生成随机二叉树工具类(TreegenerateUtils)三、如何调用随机二叉树工具类(TreegenerateUtils)? 前言 今天笔者在测试有关二叉树的…

【二叉树】如何构建一个包含大量随机数节点的二叉树测试用例

  • 前言
  • 一、案例准备
  • 二、自动生成随机二叉树工具类(TreegenerateUtils)
  • 三、如何调用随机二叉树工具类(TreegenerateUtils)?


前言

今天笔者在测试有关二叉树的测试用例时,发现一点一点给节点添加孩子操作十分繁琐,于是写了一个自动生成二叉树测试用例函数,供大家参考。


一、案例准备

准备了一个二叉树节点类Node如下图所示

在这里插入图片描述


二、自动生成随机二叉树工具类(TreegenerateUtils)


  如下面代码所示,定义了一个TreegenerateUtil工具类,其中包含有静态方法generate自动生成随机二叉树,其中该方法有两个重载实现,该方法返回一个随机二叉树实例的根节点,其中两个重载方法都需要四个参数,其中前三个参数相同为currentDepth(树的深度),MaxDepth(树的最大深度),MaxValue(树的每个节点可以达到的最大值),最后一个参数第一个重载方法为Random类实例,目的是使得每次生成的随机树不同,而第二个重载方法的参数为Int数字,跟第一个重载方法也是同样的目的


package net.mooctest;import java.util.Random;/*** @ClassName TreeUtils* @Description* @Author chougou* @Date 2023年11月10日 21:19* @Version 1.0*/
public class TreegenerateUtils {public static Node generate(int currentDepth, int MaxDepth, int MaxValue, Random random1) {       //currentDepth为当前深度,MaxDepth为树的最大深度,MaxValue为节点可以达到的最大数,均可自行调节,random为随机数种子//因为每次递归深度不同,因此currentDepth+random可作为随机数种子if (currentDepth >= MaxDepth) {                     //当递归树的深度超过MaxDepth时候,递归结束return new Node(random1.nextInt(MaxValue));} else {Node node = new Node(random1.nextInt(MaxValue));//随机添加左孩子或者右孩子或者左右孩子或者无孩子//1,只添加左孩子int temp = random1.nextInt(100);if (temp % 3 == 0) {Node nodeleft = generate(currentDepth + 1, MaxDepth, MaxValue, random1);node.left = nodeleft;}//2.只添加右孩子if (temp % 3 == 1) {Node noderight = generate(currentDepth + 1, MaxDepth, MaxValue, random1);node.right = noderight;}//3.左右孩子均添加if (temp % 3 == 2) {Node noderight = generate(currentDepth + 1, MaxDepth, MaxValue, random1);Node nodeleft = generate(currentDepth + 1, MaxDepth, MaxValue, random1);node.left = nodeleft;node.right = noderight;}//4.最后一种即什么也不添加return node;}}public static Node generate(int currentDepth, int MaxDepth, int MaxValue, int random) {       //currentDepth为当前深度,MaxDepth为树的最大深度,MaxValue为节点可以达到的最大数,均可自行调节,random为随机数种子Random random1 = new Random(currentDepth + random);        //因为每次递归深度不同,因此currentDepth+random可作为随机数种子if (currentDepth >= MaxDepth) {                     //当递归树的深度超过MaxDepth时候,递归结束return new Node(random1.nextInt(MaxValue));} else {Node node = new Node(random1.nextInt(MaxValue));//随机添加左孩子或者右孩子或者左右孩子或者无孩子//1,只添加左孩子int temp = random1.nextInt(100);if (temp % 3 == 0) {Node nodeleft = generate(currentDepth + 1, MaxDepth, MaxValue, random);node.left = nodeleft;}//2.只添加右孩子if (temp % 3 == 1) {Node noderight = generate(currentDepth + 1, MaxDepth, MaxValue, random);node.right = noderight;}//3.左右孩子均添加if (temp % 3 == 2) {Node noderight = generate(currentDepth + 1, MaxDepth, MaxValue, random);Node nodeleft = generate(currentDepth + 1, MaxDepth, MaxValue, random);node.left = nodeleft;node.right = noderight;}//4.最后一种即什么也不添加return node;}}
}


三、如何调用随机二叉树工具类(TreegenerateUtils)?


  如下面程序示例,通过调用TreegenerateUtils的静态函数generate生成4个根节点,其中每个根节点均不相同


 @Testpublic void testTreegenerateUtils(){//下面生成四个最大深度为10,节点可达到最大值为100的四个随机二叉树实例Random random1=new Random();Node root1=TreegenerateUtils.generate(1,10,100,random1.nextInt());Node root2=TreegenerateUtils.generate(1,10,100,random1.nextInt());Node root3=TreegenerateUtils.generate(1,10,100,random1);Node root4=TreegenerateUtils.generate(1,10,100,random1);}

运行结果展示:(每个根节点均不相同)
在这里插入图片描述

http://www.tj-hxxt.cn/news/88833.html

相关文章:

  • 南约社区网站建设网络推广人员
  • 青岛网站建设eoe企业网站建设方案模板
  • wordpress提速插件网络seo推广
  • 一台服务器做两个网站吗谷歌搜索引擎免费入口镜像
  • 怎样做网站赚流量百度账号登陆
  • 外国人学做中国菜 网站2022年最近十大新闻
  • 网站开发上门服务费长沙企业关键词优化哪家好
  • 做一个网站分析应该怎么做超级seo外链
  • 网站做动态虚线搜狗搜索引擎推广
  • 网站如何做线下推广辅导机构
  • 做瞹瞹瞹免费网站优化推广网站怎么做最好
  • 安徽省住房和城乡建设厅官方网站哈尔滨优化网站公司
  • 网站缺陷和优化的例子seo关键词排名点击工具
  • vs2015可以做网站么生哥seo博客
  • 东莞手机网站建设入门哪里有seo排名优化
  • 做网站的服务器怎么选郑州seo推广外包
  • wordpress 站外搜索优化网站排名推广
  • 牡丹江做网站百度网络营销中心客服电话
  • 域名备案了 怎么建设网站色盲图
  • 网站内外链怎么做效果好软件开发
  • 规划和布局营销型网站的四大重点天津seo技术教程
  • b2c网站开发核心技术seo快速排名案例
  • 网站开发员百度互联网营销顾问
  • 在凡科做网站编辑舆情分析
  • 璧山集团网站建设广州公司关键词网络推广
  • 军民融合网站建设他达拉非片
  • 网站筑云做关键词百度云搜索引擎入口官网
  • 网站转移码网站建设包括哪些内容
  • 揭阳建设局网站线上宣传方式有哪些
  • 电商模板网站免费网站域名ip查询