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

营销型网站建设的特色wordpress栏目改瀑布

营销型网站建设的特色,wordpress栏目改瀑布,软件商城免费下载安装,西服定制一般多少钱【二叉树】如何构建一个包含大量随机数节点的二叉树测试用例 前言一、案例准备二、自动生成随机二叉树工具类(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.yayakq.cn/news/10624/

相关文章:

  • 网站建设和网站推广可以同一家做吗网站联系我们 怎么做地图
  • 网站建设组织机构公司网站设计好
  • 网络设置网站专门做童装的网站
  • 福建住房和城乡建设厅网站一体化平台中国网站访问量排行
  • 汾湖做网站阿里云服务器学生机
  • 网站的规划与设计重庆电商网站建设
  • 网站数据库一般多大怎么做网络平台
  • 深圳制作网站制作公司个人作品网页设计
  • 医疗网站建设精英wordpress4.9
  • 网站导航网址大全北京网站建设 义创
  • 网站建设的四个步骤wordpress页面diy
  • 如何做区块链网站手机网站制作天强科技
  • id创建网站网络运行维护
  • 怎样用word2003做网站青岛建设官方网站
  • 企业网站建设项目策划书vimwiki wordpress
  • 萤火虫网站建设优化网站优化 seo
  • 公司网站报价九一制作厂网站
  • 做买鞋网站的论文国内景观设计公司前十名
  • 画图标网站随州制作网站
  • 在网站做的pdf有水印如何删除政务网站的建设
  • 买个网站多少钱手机app用什么工具开发
  • 深圳网站建设的公司wordpress mysql类
  • 快速模仿一个网站山东有哪些网络公司
  • 富德生命人寿保险公司官方网站wordpress链接网盘
  • 众筹网站怎么做推广方案微网站建设公司首选
  • 上海品牌网站设计公司注册网站方法
  • 天津到天津天津网站开发最全的百度网盘搜索引擎
  • 网站排名推广工具科技小论文500字范文
  • 济南建站网站建设免费发布
  • 惠州app网站建设排行榜北京seo推广服务