Как отменить вывод очереди

#java #data-structures #queue #reverse

#Ява #структуры данных #очередь #обратный

Вопрос:

В очереди, которую я реализовал ниже, учащиеся отображаются от самых старых до самых новых. Я хочу отобразить вставленных студентов от самых новых до самых старых.

Код драйвера для очереди

 import java.util.Scanner;  public class Driver {  public static void main(String[] args) {  Scanner sc = new Scanner(System.in);  System.out.println("How many Students are there ? ");  int usercount = sc.nextInt();   Queue obj = new Queue(usercount);   boolean flag = true;  while(flag) {  System.out.println("Queue Operations");  System.out.println("====================");  System.out.println("1.Insert Students Name");  System.out.println("2.Remove First inserted student");  System.out.println("3.Display All Students");  System.out.println("4.Exit");  System.out.println("========================");   System.out.println("Enter Your Choice : ");  String userchice = sc.next();  if(userchice.equalsIgnoreCase("1")) {  for(int i=0; ilt;usercount; i  ) {  System.out.println("Enter Student Name : ");  String sname = sc.next();  obj.Enqueue(sname);  }  }else if(userchice.equalsIgnoreCase("2")) {  obj.Dequeue();  }else if(userchice.equalsIgnoreCase("3")) {  obj.displayall();  }else if(userchice.equalsIgnoreCase("4")) {  System.out.println("End of Program");  flag = false;  }  }   }  }  

Код для очереди

 public class Queue { int front; int rear; String[] username; int size;   public Queue(int usercount) {  this.size = usercount;  this.front = 0;  this.rear = -1;  this.username = new String[usercount];  }   public Boolean isFull() {  if( this.rear == this.size - 1 ) {  return true;  }else {  return false;  }  }   public Boolean isEmpty() {  if( (this.rear == -1) || (this.rear lt; this.front) ) {  return true;  }else {  return false;  }  }     public void Enqueue(String item) {  if(isFull()) {  System.out.println("Queue is Full.Cannot Insert");  }else {  this.rear  ;  this.username[rear] = item;  System.out.println("Element "   item   " is inserted.");  }  }   public void Dequeue() {  if(isEmpty()) {  System.out.println("Queue is Empty.Cannot Delete");  }else {  String topelem = this.username[front];  this.username[front] = "";  System.out.println("Top Element "   topelem   " is removed.");   for(int i=0; i lt; rear ; i  ) {  this.username[i] = this.username[i 1];  }   this.username[rear] = "";  this.rear--;  }  }   public void displayall() {  for(int i=0; i lt; this.size ; i  ) {  System.out.println("Name = "   username[i]);  }  }  }  

**Допустим,я ввел a,b, c в качестве студентов по своему выбору в 1.Когда я ввожу свой выбор как 3 (отобразите всех студентов) , результат будет

  1. Имя = a Имя = b Имя = c

Чего Я ХОЧУ, ТАК ЭТО РЕЗУЛЬТАТА

  1. Имя = c Имя = b Имя = a

Это не HW или задание. Это то, что я практикую сам.Я действительно не знаю, с чего начать.

**

Ответ №1:

Просто попробуйте сделать обратный цикл.

 for(int i = rear;igt;=0;i--) {  System.out.print(this.username[i]); }