# Warteschlange (FIFO)



## Yoshi86 (1. Dez 2009)

Moin allerseits...

wir hatten als aufgabe eine Warteschlangen implementierung...

soweit so gut... habens auch fast fertig...

hier der code


```
public class Warteschlange {

  private Job[] warteschlange; 
  private int head; 
  private int rear; 
  
    private static final int MAX_LAENGE = 5; 

      public Warteschlange() {        
        warteschlange = new Job[MAX_LAENGE];
        head = rear = -1; 
      }

      
      public Warteschlange(int kapazitaet) {        
        warteschlange = new Job[kapazitaet];
        head = rear = -1; 
      }
  
// der compilier fehler tritt in den folgenden drei zeilen auf

      public Warteschlange(Warteschlange original) {        
        Warteschlange(original.length);
      }

            public boolean isEmpty() {        
              return head == rear;
            }

            public void makeEmpty() {        
              head = rear = -1; 
            }
          
            public boolean isFull() {        
              return head == -1 && rear == warteschlange.length-1; 
            }

      public void offer(Job job) {
    
          if(isFull()) {              
              System.out.println("Die Warteschlange ist voll.");
              System.exit(-1);
          }
    
              int f = head+1; 
                    
          if(rear == warteschlange.length-1) {      
              for(int i = f; i <= rear; i++)    
                warteschlange[i-f] = warteschlange[i]; 
                head = -1; 
                rear = rear-f+1; 
                warteschlange[rear] = job;
          }
    
          else {
      
            rear++;
            warteschlange[rear] = job;
          }
      }
    
    /** */
        public Job poll() {
        
          if(isEmpty())
            return null;
            head++;
            return warteschlange[head-1];
        }
        
        public Job peek() {
    
          if(isEmpty())         
            System.exit(-1);
            return warteschlange[head+1];
        }
 }
```

Das problem ist folgende ausgabe beim kompilieren

Warteschlange.java:30: cannot find symbol
symbol : variable length
location : class Warteschlange
             Warteschlange(original.length);

muss ich da die variable initialisiren? hab ich schon versucht allerdings bekomme ich da einen ähnlichen fehler... danke schonmal im voraus


----------



## Michael... (1. Dez 2009)

Die Klasse Warteschlange besitzt keine Variable length


----------



## KrokoDiehl (1. Dez 2009)

Müsste eher heißen
[JAVA=23]
Warteschlange(original.warteschlange.length);
[/code]
Das halte ich aber für unsauber. Füge lieber eine Methode 
	
	
	
	





```
getLength()
```
 in deine Warteschlange-Klasse ein.


----------



## bygones (1. Dez 2009)

KrokoDiehl hat gesagt.:


> Müsste eher heißen
> [JAVA=23]
> Warteschlange(original.warteschlange.length);
> [/code]
> ...



v.a. 

```
public Warteschlange(Warteschlange original) {        
        this(original.length);
      }
```
wobei hier ja nur einen neue Warteschlange mit gleicher Laenge anlegt und nicht die beinhaltenden Elemente mituebernimmt


----------



## KrokoDiehl (1. Dez 2009)

Oh korrekt, meine Lösung geht ja ebensowenig


----------



## Yoshi86 (7. Dez 2009)

habs hin bekommen danke


----------

