栈和队列
栈是一个非常常见的数据结构,它在计算机领域中被广泛应用,比如操作系统会给每个线程创建一个栈用来存储函数调用时各个函数的参数、返回地址、临时变量等。栈的特点是后进先出。
通常栈是一个不考虑排序的数据结构,我们需要O(n)的时间才能找到栈中最大或者最小的元素。如果想在O(1)时间内得到栈的最大或最小值,需要对栈做特殊的设计。
队列,是另一个很重要的数据结构。和栈不同的是,队列的特点是先进先出。
栈和队列虽然是特点针锋相对的两个数据结构,但有意思的是它们却相互联系。可以用两个队列实现栈。用两个栈实现队列。