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

创业论坛网站有哪些湖南网站建设seo

创业论坛网站有哪些,湖南网站建设seo,天眼查企业查询官网网页版,广州做营销型网站哪家好【二叉树】如何构建一个包含大量随机数节点的二叉树测试用例 前言一、案例准备二、自动生成随机二叉树工具类(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/126884.html

相关文章:

  • 肇庆中小企业网站制作厦门推广平台较好的
  • wordpress获取广告js上海外贸seo
  • 做初中物理题目的网站trinseo公司
  • 朋友让帮忙做网站排名第一的助勃药
  • 建设网站的目标和作用霸榜seo
  • 佛山新网站制作公司武汉seo公司
  • 商品展示型网站有哪些什么是精准营销
  • 将wordpress网站变成app企业查询
  • 贵阳网站seo百度一下官网页
  • 厦门手机建站网页设计怎么做
  • 网站做app手机版百度一下
  • 苏州做网站公司选苏州聚尚网络南昌seo计费管理
  • 网站开发语言占有率app推广怎么联系一手代理
  • 网站制作公司哪家南京大门安装制表白网站制作个人网站建设
  • 税务局的网站是哪个公司做的营销型网站建设价格
  • 北京做网站公司有哪些锦绣大地seo
  • 做午夜电影网站如何把品牌推广出去
  • asp网站如何做伪静态aso优化费用
  • wordpress可以做下载站做一个自己的网站
  • 试卷a《网站建设与管理》长沙电商优化
  • 徐州网站制作费用淘宝网络营销方式
  • 网站建设江阴免费个人自助建站
  • 一起做陶瓷的网站百度知道首页登录
  • 大连做网站制作网上有免费的网站吗
  • 制作网站培训网站排名优化服务
  • 柳州做网站有kv百度一下官方下载安装
  • 怎么找平台推广自己的产品seo关键词找29火星软件
  • 网站开发模块杭州百度整站优化服务
  • 新余市建设厅网站上海优化网站seo公司
  • 网站制作的动画怎么做的网络推广公司哪里好