在数据结构中实现队列

时间:2014-11-08 15:11:01

标签: java

我的代码出了什么问题?我显然无法运行它。以下是我的编码。有人可以帮我找到错误吗?

实施队列以执行以下操作:

  1. 排队(“A”);
  2. 排队(“B”);
  3. 排队(“C”);
  4. 排队(“d”);
  5. 排队(“E”);
  6. 排队(“F”);
  7. 排队(“G”);
  8. 排队(“H”);
  9. 出列();
  10. 出列();
  11. 出列();
  12. 出列();
  13. 排队(“I”);
  14. 排队(“J”);
  15. 出列();
  16. 出列();

    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]);
             }
            }
    

1 个答案:

答案 0 :(得分:0)

您无法在其他函数中定义命名函数。如果我是你,我会main runnable lambda表达式。

此外,方法CHK_Q_FULLEnqueueDequeuedisplay访问未定义的变量。

Queues需要一个带有三个参数的构造函数。默认构造函数永远不会超过零参数。 Queue的构造函数需要一个正文。需要指定参数的类型。构造函数下面是三个访问未定义变量的语句。同样在main方法中,您使用未定义函数Display。您应该重载方法Enqueue。