数据结构-java-迷宫问题的队列实现

本文介绍了如何使用队列(基于循环单链表)解决迷宫问题,通过Position节点类记录当前位置,并详细说明了前进方向判断及路径入队、出队的操作。
摘要由CSDN通过智能技术生成

迷宫问题:

  • 用队列实现在一个数组组成的迷宫中寻找路径到出口

实现的思路:

  1. 使用队列实现,一种广度搜索
  2. 队列选用循环单链表为基础实现队列ADT
  3. 前进方向判断
  4. 遇到死路要回退, 链表的抽象节点类不方便满足需求,新建position节点类(新增prev域指向前驱)

1. 循环单链表为基础的队列

  • CircSinglyLinkedList.java
package indi.yyh.datastru.project2.CircleLink;

import indi.yyh.datastru.project2.Node;

// @author yyh

//循环单链表

public class CircSinglyLinkedList<T> extends Object {
   
    // 头结点
    public Node<T> head;		//next域和data,自个写,就不贴代码了
    public int length = 0;

    // 构造方法
    public CircSinglyLinkedList() {
   
        this.head = new Node<T>();
        this.head.next = this.head;
    }
  	public CircSinglyLinkedList(T[] values) {
   
        this();
        this.length = values.length;
        Node<T> rear = this.head;
        for (int i = 0; i < values.length; i++) {
   
            rear.next = new Node<T>(values[i], null);
            rear = rear.next;
        }
        rear.next = this.head;

    }

	//判空
    public boolean isEmpty(){
   
        return this.length== 0;
    }

    public int insert(int i, T x) {
   
        int count = 0;
        Node<T> q = new Node<T>(x, null)
  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值