- 栈:后进先出
- 栈和队列是受限的线性表
- 栈顶等于栈底时栈为空
- 共享栈,两个栈的栈底一个在数组开头一个在结尾,就可以共享中间的空间了
- 栈用来倒叙,如进制转换,除一个数余数,倒置。括号等对称符号判断,递归
- 队列:先进先出
- 循环队列判满:设置标志位或牺牲一个位置,当尾的下一个尾头时满。避免假溢出
- 循环队列位置:数组Q[n],f为队头,r为队尾,元素个数小于n,队列中元素个数公式为(n+r-f)%n
- 循环队列添加一个元素则其位置为:存储在A[0...m] r=(r+1)%(m+1)
- 多维数组中的元素不是线性的也不是树形的
- 顺序存储的队列删除一个元素时,首先将后移一位队首指针
- 对于任意非空二叉树,要设计其后序遍历的非递归算法而不是用堆栈,最合适的是采用三叉链表