diff --git a/src/main/kotlin/data/Heap.kt b/src/main/kotlin/data/Heap.kt new file mode 100644 index 0000000..33a018e --- /dev/null +++ b/src/main/kotlin/data/Heap.kt @@ -0,0 +1,60 @@ +package technology.zim.data + +class Heap { + private val dat = ArrayList() + + fun popMin(): T { + if(dat.isEmpty()) { + throw ArrayIndexOutOfBoundsException() + } + + val ret = dat.first() + + //TODO: Sift and such + return dat.first() + } + + fun popMax(): T { + if(dat.isEmpty()) { + throw ArrayIndexOutOfBoundsException() + } + + val ret = dat.last() + + return ret + } + + fun insert(value: T) { + dat.add(value) + //TODO: siftUp, siftDown + + } + + private fun siftUp() { + + } + + private fun siftDown() { + + } + + private fun delete() { + + } + + fun peekMax(): T { + if(dat.isEmpty()) { + throw ArrayIndexOutOfBoundsException() + } + + return dat.last() + } + + fun peekMin(): T { + if(dat.isEmpty()) { + throw ArrayIndexOutOfBoundsException() + } + return dat[0] + } + +} \ No newline at end of file