数据结构以前学过,但是当时理解不是很深刻。只知道一些大概,比如堆栈链表 树、图什么的,还有就是一些排序和查找算法。最近因为做一个android APP 需要对Activity进行管理,因此用到了栈。今天就把栈的理解整理记录一下。
栈是一种数据集合,但是不像其他数据集合一样,比如数组。数组我们可以通过下标来操作任何一个数据,但是栈不行。我们只能操作栈里面的一个数据,就是我们最后放入栈里面的数据,只有我们取出了最后一个数据才能继续操作倒数第二个数据(其实这时候已经变成了倒数第一了)。
java API已经给我们提供了一个Stack类来处理栈,主要有以下方法:
push(item) 将一个对象压入栈中
pop() 将栈顶对象弹出栈, 这里会抛出异常 (如果栈顶为空) 所以我们这里需要捕获该异常
peek()查看栈顶对象 ,但是并不进行弹栈 ,同样如果栈顶为空的话 会抛出异常
clear()清空栈