#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 (отобразите всех студентов) , результат будет
- Имя = a Имя = b Имя = c
Чего Я ХОЧУ, ТАК ЭТО РЕЗУЛЬТАТА
- Имя = c Имя = b Имя = a
Это не HW или задание. Это то, что я практикую сам.Я действительно не знаю, с чего начать.
**
Ответ №1:
Просто попробуйте сделать обратный цикл.
for(int i = rear;igt;=0;i--) { System.out.print(this.username[i]); }