这两天的尽力学习递归至少把例题全部写一遍都写上注释
学习结果
10号
今天单词
Data is Move
11号
今天单词
Node set while
/**
* Test4_2 类
* @author xinjie
*
*/
public class Test4_2 {
//定义参数
int m = 6;
//定义参数
int n = 8;
//创建实例化对象
Stack <DataType> s = new Stack();
/**
* path()方法
* @param int[][] maze Move[] move
* @return 1
*/
public int path(int[][] maze,Move[] move){
//创建实例化对象
DataType temp = new DataType();
//定义参数
int x, y, d, i, j;
//调用方法
temp.setX(1); temp.setY(1); temp.setD(-1);
//调用方法
s.push(temp);
//while循环
while(!s.empty()){
//引用
temp = s.pop();
//引用
x = temp.getX(); y = temp.getY(); d = temp.getD() + 1;
//while循环
while(d <
{
//引用
i = x + move[d].getX();
//引用
j = y + move[d].getY();
//if语句
if(maze[i][j] == 0){
//创建实例化对象
temp = new DataType();
//调用方法
temp.setX(x); temp.setY(y); temp.setD(d);
//调用方法
s.push(temp);
//定义参数
x = i; y = j; maze[x][y] = -1;
//if语句
if(x == m&&y == n){
//返回1
return 1;
}
//否
else{
//d=0
d = 0;
}
//否
else
//d+1
d++;
}
}
//返回 0
return 0;
}
}
}
/**
* Move1 类
* @author xinjie
*
*/
public class Move1 {
/**
* Move 类
* @author xinjie
*
*/
class Move{
//定义私有参数
private int x;
//定义私有参数
private int y;
//定义公共参数
public Move(int x, int y){
//引用
this.x = x;
//引用
this.y = y;
}
/**
* getX()方法
* @returnx
*/
public int getX(){
return x;
}
/**
* setX()方法
* @param int x
* return 空
*/
public void setX(int x){
this.x = x;
}
/**
* getY() 方法
* @return y
*/
public int getY(){
return y;
}
/**
* setY()方法
* @param int y
* reuturn 空
*/
public void setY(int y){
//引用
this.y = y;
}
}
}
//调用包
import java.util.Stack;
/**
* fii 类
* @author xinjie
* 公共
*/
public class fii{
/**
* Node 类
* @author xinjie
*
*/
class Node{
//定义私有参数
private Object data;
//定义私有参数
private Node leftChild;
//定义私有参数
private Node rightChild;
/**
* getData()方法
* @return
*/
public Object getData(){
//返回值
return data;
}
/**
* setData()方法
* @param Object data
* return 空
*/
public void setData(Object data){
//引用
this.data = data;
}
/**
* getLeftChild() 方法
* @return leftChild
*/
public Node getLeftChild(){
return leftChild;
}
/**
* setLeftChild()方法
* @param Node leftChild
*/
public void setLeftChild(Node leftChild){
//引用
this.leftChild = leftChild;
}
/**
* getLeftChild() 方法
* @return rightChild
*/
public Node getRightChild(){
return rightChild;
}
/**
* setRightChild()方法
* @param Node rightChild
*/
public void setRightChild(Node rightChild){
//引用
this.rightChild = rightChild;
}
}
/**
* BiTree 类
* @author xinjie
*
*/
class BiTree{
//定义私有参数
private Node root;
/**
* getRoot()方法
* @return root
*/
public Node getRoot(){
return root;
}
/**
* counter()方法
* @param BiTree bt
*/
public int counter(BiTree bt){
//一定参数
int count = 0;
//引用
Node root = bt.getRoot();
//创建实例化对象
Stack <Node> stack = new Stack();
//if语句
if(root != null){
//调用方法
stack.push(root);
//循环
//while一般用于 不清楚需要循环多少次的情况下
while(!stack.empty()){
//引用
Node node = stack.pop();
//count+1
count ++;
//if语句
if(node.getLeftChild()!= null){
//调用方法
stack.push(node.getLeftChild());
}
//if语句
if(node.getLeftChild()!= null){
//调用方法
stack.push(node.getRightChild());
}
}
}
//返回 count
return count;
}
}
}
/**
* fdg 类
* @author xinjie
*
*/
public class fdg {
/**
* fibi() 方法
* @param int n
* @return 1
*/
public long fibi(int n){
//长整型 oneback=1 twobck=1 current=-1
long oneback = 1, twoback = 1, current = -1;
//定义参数
int i;
//if语句n=1或n=2
if(n == 1 || n ==2)
//返回1
return 1;
//否
else
//for循环
for(i = 3; i <= n; i++){
//长整型 current = oneback + twoback
current = oneback + twoback;
//长整型oneback = twoback
oneback = twoback;
//长整型twoback = current
twoback = current;
}
//返回cunrrent
return current;
}
}
//调用java 的文件包
import java.io.File;
/**
* fasd 类
* @author xinjie
*
*/
public class fasd {
/**
* deFolder()方法
* @param file
* return 空
*/
public void deFolder(File file){
//if语句file文件调用isFile is标准 isFile标准文件
if(file.isFile()){
//调用方法
//执行删除
file.delete();
//否
}else{
//得到直接下级的文件和文件夹
Files[] chidren = file.listFiles();
//for循环
for(int i = 0; i < children.length; i++){
//删除子文件或文件夹
delFolder(children[i]);
}
//删除自身文件夹
file.delete();
}
}
}
/**
* fal 类
* @author xinjie
*
*/
public class fal {
/**
* hanoi() 方法
* @param int n chat s chat m chat e
*/
public void hanoi(int n, char s, char m, char e){
//if语句 n=1
if(n == 1)
//调用 move方法
//将编号为1的盘子从头柱s移动到尾柱e
move (s, 1, e);
//否
else{
//将头柱s上编号为1至n-1的盘子移动到中柱m,尾柱e做辅助塔
hanoi(n - 1, s, e, m);
//将编号为n的盘子从头柱c移动到尾柱e
move(s, n, e);
//将中柱m上编号为1至n-1的盘子移到尾柱e,头柱e做辅助塔
hanoi(n - 1, m, s, e);
}
}
}
/**
* digui1 类
* @author xinjie
*
*/
public class digui1 {
/**
* main() 方法
* @param String[] args
* reuturn 空
*/
public static void main(String[] args){
//定义参数
int m , n = 3;
//引用
m = fact(n);
//输出
System.out.println( n + "!= " + m);
}
/**
* fact() 方法
* @param int n
* @return f
*/
public static int fact( int n ){
//定义参数
int f;
//if语句 n=0 f=1
if( n == 0) f = 1;
//否 f=n*fact(n-1)
else f = n * fact( n - 1);
//返回值 f
return f;
}
}
11月10到11号学习(第8、9天)
猜你喜欢
转载自xjwolaile.iteye.com/blog/1722542
今日推荐
周排行