Skip to content

Instantly share code, notes, and snippets.

@sasssass
Created June 30, 2020 02:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sasssass/aab30d352ce7a09d7dc6ea9e3520c520 to your computer and use it in GitHub Desktop.
Save sasssass/aab30d352ce7a09d7dc6ea9e3520c520 to your computer and use it in GitHub Desktop.
class TreeIterator(var tree : Array<Int>) : Iterator<Int?>{
var pos = 0
var calculationPos = 0
var leftChecked = false
override fun hasNext(): Boolean {
if(tree.size > (calculationPos)*2)
return true
else{
pos = 0
calculationPos = 0
leftChecked = false
return false
}
}
override fun next(): Int? {
if(!leftChecked){
leftChecked = true
val element = tree[calculationPos++*2]
Log.d("HERE",element.toString())
return element
}else{
leftChecked = false
val element = tree[pos++*2 + 1]
Log.d("HERE",element.toString())
return element
}
}
}
interface Collection{
fun createIterator() : Iterator<Int?>
}
class TreeCollection(var tree : Array<Int>) : Collection{
private var pos = 0
fun addToTree(value : Int){
tree[pos++] = value
}
override fun createIterator(): Iterator<Int?> = TreeIterator(tree)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment