package kapitel_04 /** * Beispiel aus * * - Algorithmen und Datenstrukturen für Dummies * - von Andreas Gogol-Döring und Thomas Letschert * - Verlag Wiley-VCH; Oktober 2019 * - Kapitel 4, Listen: Immer einer nach dem anderen * * @author A. Gogol-Döring, Th. Letschert */ object AuD_04_02_Queue_Imp_App extends App { object Queue { case class Cell(content: Int, var next: Cell) var queueHead: Cell = null var queueEnd: Cell = null def Enqueue(x: Int): Unit = { val newCellPtr = Cell(x, null) if (queueHead == null) { queueHead = newCellPtr queueEnd = newCellPtr } else { queueEnd.next = newCellPtr queueEnd = newCellPtr } } def Dequeue(): Int = { val firstCell = queueHead if (firstCell.next == null) { queueHead = null queueEnd = null } else { queueHead = queueHead.next } firstCell.content } } for (i <- 1 to 10) Queue.Enqueue(i) (1 to 10).foreach( _ => println(Queue.Dequeue()) ) }