首页 > 编程语言 >数据结构-小球走迷宫问题(递归算法)

数据结构-小球走迷宫问题(递归算法)

时间:2023-02-05 22:12:49浏览次数:39  
标签:map return 递归 int isRun 小球 System 数据结构 out

迷宫样式

package com.recursion;

public class Maze {
    public static void main(String[] args) {

        int[][] map = new int[8][7];
        for (int i = 0; i < map[0].length; i++) {
            map[0][i]=1;
            map[7][i]=1;
        }
        for (int i = 0; i < map.length; i++) {
            map[i][0] = 1;
            map[i][6] = 1;
        }
        map[3][1] = 1;
        map[3][2] = 1;
//
        System.out.println("=====迷宫====");

        for (int[] i : map
        ) {
            for (int y : i
            ) {
                System.out.print(y + "\t");
            }
            System.out.println();
        }
        isRun(map,1,1);
        System.out.println("====小球运动路线====");
        for (int[] i : map
        ) {
            for (int y : i
            ) {
                System.out.print(y + "\t");
            }
            System.out.println();
        }
    }

    public static boolean isRun(int[][] map,int i,int j){
        if(map[6][5] == 2){
            return true;
        }else{
            if(map[i][j] == 0){
                map[i][j] = 2;
//                往上 下 左 右运动
                if(isRun(map,i+1,j)){
                    return true;    
                }else if(isRun(map,i,j+1)){
                    return true;
                }else if(isRun(map,i-1,j)){
                    return true;
                }else if(isRun(map,i,j-1)){
                    return true;
                }else{
                    map[i][j]=3;
                    return false;
                }
            }else{
                return false;
            }
        }

    }
}

运行结果

数字1代表围墙,数字2代表小球走过的路线

标签:map,return,递归,int,isRun,小球,System,数据结构,out
From: https://www.cnblogs.com/xming2023/p/17094066.html

相关文章

  • 一步一步地完成题目——费解的开关(C/C++语言)递推、递归、顺序思维
    前言本文中博主将一步一步地、以正常人的顺序思维完成题目——费解的开关,使用的核心方法是递推与递归。题目参考题目:费解的开关详细的题目信息相信大家都已经知道了,因......
  • [数据结构] 二分查找 (四种写法)
    二分查找二分查找二分查找(BinarySearch)也叫作折半查找,前提是查找的顺序结构是有序的,我们一般在数组上进行二分查找。二分查找就好像猜数字大小游戏一样。假设要数字目......
  • C/C++数据结构课程设计任务书[2023-02-05]
    C/C++数据结构课程设计任务书[2023-02-05]数据结构课程设计任务书13周一、目的课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结......
  • [数据结构] 哈希表 (开放寻址法+拉链法)
    哈希表哈希表的基本概念哈希表Hashtable是一种提供快速查找和插入元素的数据结构,也称散列表。哈希表是基于数组的扩展,一般利用数组的下标作为哈希表的键值。哈希表存......
  • qt实现类似windows的屏幕保护(小球碰撞动画)
    最近看了篇文章啊,讲的就是让小球进行移动,可能别人做的是仿真啊,用到了太多的数学函数,什么运动学,各种的,我就想着,自己能不能使用qt实现下这种效果,就是有一个球不停的移动,当碰......
  • 数据结构
    优化代码结构、增大运行效率记录某种事件或某种信息的载体,如何管理数据编程之美线性表:链表、栈、队列顺序:数组定长,取数快链式:指针,前驱和后继,不定长线性存储:学生信息......
  • [数据结构] 树、森林的遍历
    树的遍历树的遍历方式有先根遍历和后根遍历。在下面树的遍历中,采用的都是孩子兄弟表示法构建的树。树的先根遍历树的先根遍历步骤先根遍历就是先访问树的根节点,然后再......
  • 数据结构-实现逆波兰计算器
     packagecom.stack;importjava.util.ArrayList;importjava.util.List;importjava.util.Stack;publicclassPoland{publicstaticvoidmain(String[]a......
  • python基础:文件操作、函数、名称空间、函数名称的多种用法、闭包函数、装饰器、递归函
    目录一、文件操作1、概念介绍2、两种操作方式3、文件读写模式4、文件的操作模式5、文件的诸多方法6、文件内的光标移动7、文件内容修改二、函数1、概念2、语法结构3、函数......
  • Fabric2.x中Raft共识算法核心数据结构
    一、共识算法可插拔的代码体现Chain接口HyperledgerFabric的共识算法是可插拔的,在代码上体现为Chain接口,所有不同的共识算法均可根据Chain接口进行具体实现,目前fabric支......