鱼C论坛

 找回密码
 立即注册
查看: 1780|回复: 3

数据结构栈和队列问题

[复制链接]
发表于 2022-5-9 19:28:50 | 显示全部楼层 |阅读模式
20鱼币
假设以数组se[m]存放循环队列的元素,同时设置变量front和rear分别作为队头指针和队尾指针,且队头指针指向队头前一个位置,写出判定此循环队列为满的条件,并给出循环队列的入队和出队的算法

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-9 19:57:19 | 显示全部楼层

循环队列的队满条件为 (rear+1) % m = front

java 代码参考:
public class ArrayQueue {
    private int maxSize; // 数组最大容量
    private int front; // 队头指针,指向队头元素的前一个位置
    private int rear; // 队尾指针,指向队列尾的最后一个位置
    private int[] arr; // 用数组存放数据,模拟队列

    public ArrayQueue(int arrMaxSize) {
        maxSize = arrMaxSize;
        arr = new int[maxSize];
        front = rear = 0;
    }

    public boolean isFull() {
        return (rear + 1) % maxSize == front;
    }

    public boolean isEmpty() {
        return rear == front;
    }

    public void addQueue(int n) {
        if (isFull()) {
            throw new RuntimeException("队列已满,不能加入数据");
        }
        arr[rear] = n;
        rear = (rear + 1) % maxSize;
    }

    public int getQueue() {
        if (isEmpty()) {
            throw new RuntimeException("队列空,无法取出数据");
        }
        front = (front + 1) % maxSize;
        return arr[front];
    }

    public void show() {
        if (isEmpty()) {
            System.out.println("当前队列为空!");
            return;
        }
        System.out.print("Queue = [");
        int temp = front;
        for (int i = 0; i < (rear + maxSize - front) % maxSize; i++) {
            if (i == (rear + maxSize - front) % maxSize - 1)  {
                System.out.print(arr[temp]);
            } else {
                System.out.print(arr[temp] + ", ");
            }
            temp = (temp + 1) % maxSize;
        }
        System.out.println(']');
    }

    public int headQueue() {
        if (isEmpty()) {
            throw new RuntimeException("队列为空!");
        }
        return arr[front];
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-5-9 20:02:06 | 显示全部楼层
Twilight6 发表于 2022-5-9 19:57
循环队列的队满条件为 (rear+1) % m = front

java 代码参考:

牛啊,你们这都是咋学的呀,有没有啥学习方法推荐推荐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-9 20:08:40 | 显示全部楼层
LXTTY 发表于 2022-5-9 20:02
牛啊,你们这都是咋学的呀,有没有啥学习方法推荐推荐



B站的 王卓老师数据结构与算法视频强烈推荐,虽然是基于 C/C++ 的

但是数据结构与算法本身就是学习算法实现的思想(我就没有 C/C++ 的基础,QAQ)

而且王卓老师不得不说,老师讲课很温柔,而且解释的蛮容易理解的,是我看过感觉最好的一个数据结构课程老师了(个人感觉哈)

参考视频连接:https://www.bilibili.com/video/BV1nJ411V7bd?p=1

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 21:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表