栈和队列有哪些特殊的操作?栈和队列能解决什么样的问题?用栈和队列这种数据结构,来解决与“先进先出”、“先进后出”有关的实际问题了,如宽度优先搜索、表达式求值等。
常生活普遍规律
如果桌上有一叠盘子,大家都只会拿最上面的那一个。食堂排队的时候,你总是先找到队尾加入,而排在队首的同学打完饭之后就会离开。
类比计算机,也许只需要在线性序列的一端或两端进行操作,对应的就是栈和队列这两种受限的线性表,他们是最简单的基础数据结构,应用也最广泛。
重点:栈的 LIFO 特性,深度优先搜索,理解递归中栈的作用;队列的 FIFO 特性,宽度优先搜索。
难点:机械的递归转非递归,简单理解就可以了,不需要掌握;顺序队列的实现假溢出处理。