栈&队列 与 数组的区别
用途:数组,链表,树等一般用来作为数据存储的工具,栈和队列更多是用来作为构思程序算法的辅助工具,用来执行某项特殊任务,例如handler中的messageQueue消息队列,Activity栈等;
受限访问:数组可以通过下标随机访问或遍历,而栈和队列访问是受限的,即在特定时刻只有一个数据项可以被读取或删除;
抽象数据类型:栈和队列的关键点在于它的逻辑特性,而非实现细节,它们可以用其他数据结构,如数组,链表等来实现;
栈和队列插入和移除数据项的时间复杂度都是O(1);
栈
只允许访问最后插入的数据项,移除这个数据项后才可以访问倒数第二个插入的数据项,依此类推,例如往一个桶里面放东西,取出的时候要先取出最上面的;
LIFO:last in first out,后进先出
栈的容量通常比较小,一般用来作为算法或应用程序中临时存储数据
通常提供的限定访问方法是push()和pop(),这是比较通用的命名;
栈的实现
1. 先创建一个栈的基类
2. 用数组实现栈,后面讲到链表后,也将介绍用链表实现栈
3. 对栈的使用
我是今阳,如果想要进阶和了解更多的干货,欢迎关注公众号”今阳说“接收我的最新文章