2014-11-08 126 views
-3

我的代碼有什麼問題?我無法運行它顯然。以下是我的編碼。有人可以幫我找到錯誤嗎?在數據結構中實現隊列

實現隊列執行以下操作:

  1. 排隊(「A」);
  2. Enqueue('b');
  3. Enqueue('c');
  4. Enqueue('d');
  5. Enqueue('e');
  6. Enqueue('f');
  7. Enqueue('g');
  8. Enqueue('h');
  9. Dequeue();
  10. Dequeue();
  11. Dequeue();
  12. Dequeue();
  13. Enqueue('i');
  14. Enqueue('j');
  15. Dequeue();
  16. Dequeue();

    public class Queues { 
    
    public static void add(Queues <String>myQueue, String s) { 
        myQueue.enqueue(s); 
    
    
    public static void main(String[] args){ 
    
         Queues myQueue = new Queues (20, 0, 0); 
         myQueue.Enqueue('a'); 
         myQueue.Enqueue('b'); 
         myQueue.Enqueue('c'); 
         myQueue.Enqueue('d'); 
         myQueue.Enqueue('e'); 
         myQueue.Enqueue('f'); 
         myQueue.Enqueue('g'); 
         myQueue.Enqueue('h'); 
         myQueue.Enqueue(); 
         myQueue.Enqueue(); 
         myQueue.Enqueue(); 
         myQueue.Enqueue(); 
         myQueue.Enqueue(); 
         myQueue.Enqueue(); 
         myQueue.Enqueue('i'); 
         myQueue.Enqueue('j'); 
         myQueue.Enqueue(); 
         myQueue.Display(); 
        }     
    } 
    
    class Queue{ 
    int x; 
    char [] y; 
    int front, rear, w; 
    
    
    
    Queue (int a, b , c); 
    x = a; 
    y = new char[x]; 
    front = b; 
    rear = c; 
    w = rear; 
    
         boolean CHK_Q_EMPTY() 
         return rear == 0; 
         } 
         boolean CHK_Q_FULL(){ 
         return rear == x; 
         } 
    
    
    void Enqueue (char d){ 
         y(rear) = d; 
         rear++; 
         w++; 
    } 
    
    void Dequeue(){ 
        for (int z=1; z<rear; z++){ 
         y[front]=y[z]; 
         front++; 
        } 
    
    
         w--; 
         if(front == rear){ 
         front = 0; 
         rear = w; 
         } 
    } 
         void display(){ 
    
    
         for (int i=0; i<rear; i++) 
          System.out.println(y[i]); 
         } 
         } 
    
+0

這是你的真實密碼?它不會編譯。首先糾正所有編譯錯誤,然後運行它,儘可能糾正錯誤,粘貼新的鱈魚,然後讓我們知道它應該做什麼以及它做錯了什麼。 – RealSkeptic 2014-11-08 15:20:18

+0

不知道錯誤在哪裏:/ im只是一個初學者:'( – Lolzz 2014-11-08 15:40:31

+0

然後,你使用StackOverflow還爲時過早,你需要閱讀你的Java書籍,看看你得到的每一個編譯錯誤,並比較它如果你需要一個人來幫助你,你應該和你的老師或他的助理談談。 – RealSkeptic 2014-11-08 15:56:27

回答

0

你不能定義其他函數中命名的功能。如果我是你,我會使main一個runnable lambda表達式。

此外,方法CHK_Q_FULL,Enqueue,Dequeuedisplay訪問未定義的變量。

Queues需要一個帶三個參數的構造函數。默認構造函數永遠不會超過零個參數。 Queue的構造函數需要一個body。參數的類型需要指定。在構造函數下面有三條訪問未定義變量的語句。同樣在main方法中,您使用未定義的函數Display。您應該也可以重載方法Enqueue。

+0

我沒有這樣做,因爲它不是一個交互式網站。 't明白了......我只是一個初學者,你能用一種更簡單的語言來解釋它嗎? – Lolzz 2014-11-20 06:43:43

+0

@ user2971157你應該做RealSkeptic所說的。如果你想快速的在線獲得關於如何用Java編碼的信息,我會推薦Java教程(https://docs.oracle.com/javase/tutorial/index.html)。首先嚐試糾正編譯器錯誤。 – TheNumberOne 2014-11-20 20:02:50