Java自定义队列如何实现元素从最新插入到最早插入逆序输出
解决方法
你只需要修改Queue类中的displayall()方法即可,无需调整入队、出队的原有逻辑。
原理说明
你当前的队列实现中,数组下标越小的位置存储的是插入时间越早的学生:
rear下标始终指向最后插入(最新)的学生front下标始终指向最先插入(最旧)的学生
只要从rear倒序遍历到front,就能实现从新到旧的输出要求,同时还能解决原方法遍历整个数组、队列没满时输出空内容的问题。
修改后的代码
public void displayall() { if(isEmpty()) { System.out.println("Queue is Empty.No Students to Display"); return; } // 从最新插入的位置倒序遍历到最早插入的位置 for(int i = rear; i >= front; i--) { System.out.println("Name = " + username[i]); } }
效果验证
当你依次输入a、b、c后,队列数组内容为["a","b","c"],此时front=0、rear=2,遍历顺序为i=2、1、0,输出顺序为c、b、a,和你预期的结果完全一致。
内容的提问来源于stack exchange,提问作者pasan
相关产品推荐
相关产品推荐

