【尚硅谷】数据结构预算法二—环形数组

前言

小白跟随尚硅谷学习数据结构与算法的第二天—队列

一、队列的使用场景与介绍

队列介绍:

二、数组模拟对列

        当加入数据的时候,front没有变化,rear不断增加;

        当取出数据的时候,front不断增加,rear没有变化

        对列本身为有序的列表,若用数组的结构来存储对列的数据,我们要设置四个参数,分别为数组前端(front),数组后端(rear),数组最大容量(maxSize),数组(arr) ,因为队列的输出、输入是分别从前后端来处理,因此需要两个变量front及rear分别记录队列前后端的下标,front 会随着数据输出而改变,而rear则是随着数据输入而改变。

       首先我们要实现的功能为addQueue,即将数据存入对列,addQueue需要有两个步骤:

  1. 将尾指针往后移:rear+1,当front==rear【空】
  2. 若尾指针 rear小于队列的最大下标 maxSize-1,则将数据存入rear所指的数组元素中,否则无法存入数据。rear ==maxSize-1【队列满】
  3.     rear是对列的最后一个数据,front是对列的首元素前一个元素,加入数据时,raer向后移动

代码实现:

1、首先我们要编写一个ArrayQueue类

private int maxSize;//表示数组最大容量
private int front;//队列头
private int rear;//队列尾
private int[] arr; //该数组用于存放数据 模拟队列

2、创建构造器

public  ArrayQueue(int sizeMax){
        this.sizeMax=sizeMax;
        arr=new int[maxSize];
        this.front =-1;   //front是指向队列头的前一个位置
        this.rear=-1;    //指向队列尾的最后一个数据
    }

3、addQueue的代码实现

    /**
     * 判断对列是否满
     */    
    public boolean isFull
PPT和源代码 数据结构电子通讯录系统数据数据库创建脚本<br> \MyAddressList \DB \MyAddressList.bak 电子通讯录系统数据数据库备份<br> \MyAddressList \Images\ 电子通讯录系统图片文件夹<br> \MyAddressList \Styles\Stye.css 电子通讯录系统样式表文件<br> \MyAddressList \Login.aspx 登录页面<br> \MyAddressList \Register.aspx 注册页面<br> \MyAddressList \ModifyPwd.aspx 修改密码页面<br> \MyAddressList \AddressAdd.aspx 添加好友页面<br> \MyAddressList \AddressList.aspx 好友管理页面<br><br>第3章(\C03)<br>示例描述:本章实现了网上选课系统,通过该系统,学校不同角色的用户可以通过网路完成选课系统功能:管理员通过该系统实现对学生、教师、课程的添加和维护和学生成绩的维护;教师通过该系统实现查看课程选修情况和录入学生成绩;学生通过该系统实现选课、退课等功能;还有公有模块:修改密码功能。<br> \MyElectCourse \DB \MyElectCourse.sql 网上选课系统数据数据库创建脚本<br> \MyElectCourse \DB \MyElectCourse.bak 网上选课系统数据数据库备份<br> \MyElectCourse \Images\ 网上选课系统图片文件夹<br> \MyElectCourse \Controls\left.ascx 网上选课系统用户控件<br> \MyElectCourse \Login.aspx 登录页面<br> \MyElectCourse \Main.aspx 管理员主页面<br> \MyElectCourse \adminStudentAdd.aspx 添加学生页面<br> \MyElectCourse \adminStudentDetails.aspx 学生维护页面<br> \MyElectCourse \adminCourse.aspx 添加课程页面<br> \MyElectCourse \adminCourseDetails.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值