没有合适的资源?快使用搜索试试~ 我知道了~
数字游戏-算法.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 40 浏览量
2021-09-13
19:57:05
上传
评论
收藏 473KB PDF 举报
温馨提示
试读
16页
入股分红协议模板—餐厅入股合作协议书--.pdf
资源推荐
资源详情
资源评论
运行结果:
① 初始状态:
② 点击运行后的结果
首先:默认结果为 20(可以指定),默认数字字符为 1234567890(可以指定)
第二次:手工指定结果为 30,字符为 123456789(可以为其他)
源代码如下:
三个类介绍如下:
节点类: Node
核心算法类: NumberGame
界面启动类: ComposeDisplay
在 NumberGame 中解决该问题运用了数据结构和算法的知识。
创建树,对树进行先序、中序遍历( DFS),以及对树的广度遍历( BFS)。
共分为 3 个类:
==========================节点类========================
package com.clb.tree;
import java.util.List;
public class Node {
private Object data;
private List<Node> listNodes;
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public List<Node> getListNodes() {
return listNodes;
}
public void setListNodes(List<Node> listNodes) {
this.listNodes = listNodes;
}
public Node() {
super();
}
public Node(Object data, List<Node> listNodes) {
super();
this.data = data;
this.listNodes = listNodes;
}
}
==========================核心算法类========================
package com.clb.tree;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* 在=的左边的数字间加入‘+’,‘-’或‘ ’,使得以下等式成立
* 1 2 3 4 5 6 7 8 9 0=20
* @author Administrator
*
*/
public class NumberGame {
private int[] nums ={1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
private char[] chs = {'+', '-', ' '};
/**
* 创建完全树
* 如:(用*代表空格)
* (空节点)
* 1
* + - *
* 2 2 2
* + - * + - * + - *
* 3 3 3 3 3 3 3 3 3
* + - * ……
* ……
*
* @param tree
* @param index
* @return
*/
public Node createTree(Node tree, int index){
if(index >= nums.length)return null;
List<Node> listNodes = tree.getListNodes();
/*
* 创建数字 1 为例外,即树中的第一个节点
*/
if(index==0){
Node newnode = new Node(nums[index], new ArrayList<Node>());
listNodes.add(newnode);
tree.setListNodes(listNodes);
createTree(newnode, ++index);
}else{
/*
* 之后以加入符号和下一个数字为一个组合构建剩余的树,即每次
构建两层
*/
//创建一个数字节点,以备将该节点准备接到上一个字符节点中,该
数字节点将作为下次构建树的根节点
Node numNode = new Node(nums[index], new ArrayList<Node>());
//为根节点中加入三个字符节点及下个数字根节点
for (int k = 0; k < chs.length; k++) {
List<Node> chListNode = new ArrayList<Node>();
chListNode.add(numNode);
//创建一个字符节点,并将数字节点接到该字符节点中来
Node chNode = new Node(chs[k], chListNode);
//将该字符节点加入到根节点集合中,构建树过程
listNodes.add(chNode);
}
createTree(numNode, ++index);
}
return tree;
}
List<List<Node>> DFSResult = new ArrayList<List<Node>>();//save the all
剩余15页未读,继续阅读
资源评论
苦茶子12138
- 粉丝: 1w+
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功