题目描述
请你实现一个栈。
操作:
push x:将 加x\x 入栈,保证 x\x 为 int 型整数。
pop:输出栈顶,并让栈顶出栈
top:输出栈顶,栈顶不出栈
代码实现
open class ScannerStackObject(private val stack: Int) {
private object StackObjectStatic: ArrayList<Int>();
private var stackObjectMaxLength: Int=0
init {
this.stackObjectMaxLength = stack
}
fun getStackObjectMaxLength(): Int {
return this.stackObjectMaxLength;
}
fun push(value:Int) {
if (stackObjectMaxLength>=StackObjectStatic.size){
StackObjectStatic.add(value)
}else{
throw IllegalStateException("push failed,stack is full")
}
}
fun getStaticObjectSize(): Int {
return StackObjectStatic.size;
}
fun pop(index:Int?){
if (stackObjectMaxLength>=0){
if (index == null) {
StackObjectStatic.remove(StackObjectStatic.size-1)
}else {
StackObjectStatic.remove(index)
}
}else{
throw IllegalStateException("error pop stack object,stack is null")
}
}
}
测试代码部分:
fun main(args: Array<String>) {
val scannerStackObject = ScannerStackObject(1)
println(
scannerStackObject.getStackObjectMaxLength(),
)
scannerStackObject.push(1)
}