概述
首先定义一个接口。
代码如下:
public interface IQueue {
public void clear();
public boolean isEmpty();
public int length();
public Object peek();
public void offer(Object x)throws Exception;
public Object poll();
}
接下来用CircleSqQueue类去实现接口。
实现代码如下:
public class CircleSqQueue implements IQueue{
private Object[] queueElem;
private int front;
private int rear;
public CircleSqQueue(int maxSize){
front = rear = 0;
queueElem=new Object[maxSize];
}
public void clear(){
front = rear = 0;
}
public boolean isEmpty(){
if (front == rear){
return true;
}
else if(front==(rear+1)%queueElem.length){
return false;
}
return false;
}
public int length(){
return (rear-front+queueElem.length)%queueElem.length;
}
public Object peek(){
if (front==rear){
return null;
}else {
return queueElem[front];
}
}
public void offer(Object x)throws Exception{
if ((rear+1)%queueElem.length==front)
throw new Exception("队列已满!");
else {
queueElem[rear]=x;
rear=(rear+1)%queueElem.length;
}
}
public Object poll(){
if (front==rear)
return null;
else {
Object t=queueElem[front];
front=(front+1)%queueElem.length;
return t;
}
}
public void display(){
if (!isEmpty()){
for (int i=front;i!=rear;i=(i+1)%queueElem.length)
System.out.println(queueElem[i].toString()+" ");
}else {
System.out.println("此队列为空!");
}
}
public void text()throws Exception{
CircleSqQueue q=new CircleSqQueue(0);
CircleSqQueue q1=new CircleSqQueue(0);
CircleSqQueue q2=new CircleSqQueue(0);
int j=0;
int i=0;
while(j<10){
if (!q1.isEmpty() && i<4){
q.offer(q1.poll());
i++;
j++;
}else if(i==4 && !q2.isEmpty()){
q.offer(q2.poll());
j++;
i=0;
}else {
while (j<10 && i<5 && !q2.isEmpty()){
q.offer(q2.poll());
i++;
j++;
}
i=0;
}if (i==10){
q.display();
q.clear();
j=0;
}
if (q1.isEmpty() && q2.isEmpty()){
j=10;
q.display();
}
}
}
}
最后编写测试类函数。
代码如下:
import java.util.*;
public class text {
public static void main(String[] args) {
CircleSqQueue c1=new CircleSqQueue(5);
Scanner sc=new Scanner(System.in);
Scanner sc1=new Scanner(System.in);
while(true) {
System.out.println("----------------------------------------------------");
System.out.println("请选择下列数字选择相应的操作:");
System.out.println("1、求队循环队列的长度");
System.out.println("2、判断循环队列是否为空");
System.out.println("3、清空循环队列");
System.out.println("4、取循环你队列队首元素");
System.out.println("5、入队操作");
System.out.println("6、出队操作");
System.out.println("7、显示所有循环队列元素");
System.out.println("8、退出");
System.out.println("----------------------------------------------------");
System.out.println(" 20级软工X班 张三");
int s = sc.nextInt();
label:
switch (s){
case 1:
System.out.println("队列的长度为:"+c1.length());
break;
case 2:
boolean temp=c1.isEmpty();
if (temp){
System.out.println("该队列为空!");
}else {
System.out.println("该队列为非空!");
}
break;
case 3:
c1.clear();
System.out.println("清空操作成功!");
break;
case 4:
System.out.println("队列首队列的元素为:"+c1.peek());
break;
case 5:
System.out.println("请输入要入队的元素:");
int s1=sc1.nextInt();
Object o=(Object)s1;
try {
c1.offer(o);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("入队操作成功!");
break;
case 6:
c1.poll();
System.out.println("出队操作成功!");
break;
case 7:
System.out.println("循环队列元素为:");
c1.display();
break;
case 8:
System.out.println("退出成功");
try {
c1.text();
} catch (Exception e) {
e.printStackTrace();
}
{
return;
}
}
}
}
}
运行结果
在下面输入想要执行的操作即可。
最后
以上就是高大向日葵为你收集整理的用while循环执行选择操作的全部内容,希望文章能够帮你解决用while循环执行选择操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复