[关闭]
@cxm-2016 2016-11-05T11:59:26.000000Z 字数 662 阅读 1590

数据结构:设计一个栈

数据结构

版本:2
作者:陈小默
声明:禁止商业,禁止转载

使用任意语言设计一个栈结构,要求如下:

  • 使用pop出栈
  • 使用push入栈
  • 能够判断栈是否已满
  • 能够判断栈是否已空
  • 能够获取栈顶元素
  • 能够获取栈底元素
  1. /**
  2. * Created by CXM on 16/11/5.
  3. */
  4. class Stack<T>(val max: Int) {
  5. val stack = Array<Any?>(max, { null })
  6. var size = 0
  7. private set
  8. val isEmpty: Boolean get() = size == 0
  9. val isFull: Boolean get() = size == max
  10. val top: T? get() {
  11. if (!isEmpty)
  12. return stack[size - 1] as T
  13. else throw RuntimeException("stack is empty")
  14. }
  15. val bottom: T? get() {
  16. if (!isEmpty)
  17. return stack[0] as T
  18. else throw RuntimeException("stack is empty")
  19. }
  20. fun push(value: T?) {
  21. if (!isFull)
  22. stack[size++] = value
  23. else throw RuntimeException("stack is full")
  24. }
  25. fun pop(): T? {
  26. if (!isEmpty) {
  27. val value = stack[--size] as T
  28. stack[size] = null
  29. return value
  30. } else throw RuntimeException("stack is empty")
  31. }
  32. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注