Java Programming作业:基于ArrayList的类来实现队列的相关操作

题目:基于ArrayList的类来实现队列的相关操作,包括判断队列元素是否为空、元素入队列、出队列、返回队列末端及顶端元素等操作;请注意充分利用ArrayList本身的特性来完成相关函数。

package package1;

import java.util.*;

class Queue {
	ArrayList<Object> qlist = new ArrayList<>();

	Queue() {
	}

	// 元素入队
	public void push(Object o) {
		qlist.add(o);
	}

	// 元素出队
	public Object pop() {
		if (qlist != null && qlist.size() > 0) {
			Object o = qlist.get(0);
			qlist.remove(0);
			return o;
		}
		return null;
	}

	// 返回队尾元素
	public Object getEnd() {
		return qlist.get(getQSize() - 1);
	}

	// 返回队头元素
	public Object getHead() {
		return qlist.get(0);
	}

	// 判断队列元素是否为空
	public boolean isQEmpty() {
		return qlist.isEmpty();
	}

	// 输出队列内元素个数
	public int getQSize() {
		return qlist == null ? 0 : qlist.size();
	}

	// 遍历
	public void traverse() {
		System.out.print("队列为:");
		for (Object o : qlist) {
			System.out.print(o + " ");
		}
		System.out.println();
	}
}

public class QueueAL {

	public static void main(String[] args) {
		Queue q = new Queue();
		Scanner input = new Scanner(System.in);
		display();
		int con = 1;
		do{
			int choice = input.nextInt();
			switch (choice) {
			case 1:
				System.out.println("请输入要入队的元素:");
				Integer value = input.nextInt();
				q.push(value);
				q.traverse();
				display();
				break;
			case 2:
				if (!q.isQEmpty()) {
					q.pop();
					q.traverse();
				} else
					System.out.println("队列为空");
				display();
				break;
			case 3:
				System.out.println("队列尾元素为 " + q.getEnd());
				display();
				break;
			case 4:
				System.out.println("队列头元素为 " + q.getHead());
				display();
				break;
			case 5:
				System.out.println("共有 " + q.getQSize() + " 个元素");
				display();
				break;
			case 6:
				if (q.isQEmpty())
					System.out.println("队列为空!");
				else
					System.out.println("队列非空!");
				display();
				break;
			case 0:
				System.exit(0);
			}
		}while(con != 0);	
		input.close();
	}

	public static void display() {
		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("------0:退出-------------------------");
		System.out.println("请选择:");
	}
}

运行结果示例:
在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值