public class iterVrsta implements queue { public static final int predolVelikost= 100; protected int prviPoln= 0; protected int prviPrazen= 0; protected boolean prazna= true; protected int najvVelikost; protected Object vrsta[]; /** Najvecja dovoljena velikost vrste. */ public iterVrsta(int najvecji) { najvVelikost= najvecji; vrsta= new Object[najvVelikost]; prviPrazen= prviPoln= 0; prazna= true; }; public iterVrsta() { this(predolVelikost); } /** * Najvecja velikost vrste. */ public int size() { return najvVelikost; }; /** * Stevilo elementov v vrsti. */ public int num() { return (prviPrazen - prviPoln + najvVelikost) % najvVelikost; }; /** * Stevilo prostih mest v vrsti. */ public int free() { return size() - num(); }; /** * Prvi predmet v vrsti. * @exception queueException Nobenega predmeta v vrsti. */ public Object front() { if (prazna) throw new queueException("vrsta je prazna"); return vrsta[prviPoln]; } // Front /** * Dodamo nov predmet v vrsto. * @exception queueException Vrsta je polna. */ public void enqueue (Object element) { if ( (num() == size()) && (! prazna) ) throw new queueException("vrsta je poln"); vrsta[prviPrazen]= element; prazna= false; prviPrazen= (prviPrazen+1) % najvVelikost; }// enqueue /** * Vzamemo prvi predmet iz vrste. * @exception queueException Nobenega predmeta v vrsti. */ public Object dequeue() { Object retVal; retVal= front(); prviPoln= (prviPoln+1) % najvVelikost; prazna= prviPoln == prviPrazen; return retVal; } // dequeue } // iterVrsta