class QueueFehler extends Exception{ public QueueFehler(){super();} public QueueFehler(String s){super(s);} } class Que{ private Object[] inhalt = null; private boolean voll = false; private int anfang = 0; private int ende = 0; private int maxQueueSize; Que(int sz){ inhalt = new Object[sz]; maxQueueSize = sz-1; } private int next(int n){ return (n+1)%maxQueueSize; } boolean istLeer (){ return (anfang == ende) && ! voll;} boolean istVoll (){ return voll;} void enQueue (Object e) throws QueueFehler{ if (inhalt == null) throw new QueueFehler("QueueFehler: Keine Queue gefunden !"); if (istVoll()) throw new QueueFehler("QueueFehler: Queue Überlauf !"); inhalt[ende] = e; ende = next(ende); voll = (anfang == ende); } Object deQueue () throws QueueFehler { if (inhalt == null) throw new QueueFehler("QueueFehler: Keine Queue gefunden !"); if (istLeer()) throw new QueueFehler("QueueFehler: Zugriff auf leere Queue !"); Object e = inhalt[anfang]; anfang = next(anfang); voll = false; return e; } } class QueueT { public static void main(String args[]) { System.out.println("Queue tester"); System.out.println(""); String beispiel = "BEISPIEL"; int l = beispiel.length(); Que meineQueue = new Que(l+1); try { for (int i = 0; i < l; i++){ char c =beispiel.charAt(i); System.out.print(c); //Object e = new Character(c);// nicht mehr nötig ab jdk1.5 //meineQueue.enQueue(e); meineQueue.enQueue(c); } System.out.println(); } catch(QueueFehler s){System.out.println(s);} try { for (int i = 0; i < l; i++){ Object e = meineQueue.deQueue(); System.out.print(e); } System.out.println(); } catch(QueueFehler s){System.out.println(s);} } }