栈就像一个弹夹,先进后出;队列就是排队,先进先出
栈和队列其实是逻辑上的名字,底层如何实现?双向链表、数组
栈:push是添加元素、pop是弹出元素、peek用于查看栈顶元素而不移除
哈希:哈希表的增删改查在使用时都是O(1),哈希表一律按值传递 ,非基础类型的key,如自定义类型,按引用传递
Intger类型 -128 ~ 127 是按值传递,高于127按引用传递
TreeMap内部是有序的、其增删改查时间复杂度都是O(logN)
几句话总结一切数据结构和算法
种种数据结构,皆为数组(顺序存储)和链表(链式存储)的变换。
数据结构的关键点在于遍历和访问,即增删查改等基本操作。
种种算法,皆为穷举。
穷举的关键点在于无遗漏和无冗余。熟练掌握算法框架,可以做到无遗漏;充分利用信息,可以做到无冗余。