1、表达式:=操作数+
2、Exp = s1 + o1 + s2
3、​​​如何构建语法树?如何求后缀表达式?如何求前缀表达式?如何求中缀表达式?​​​ 4、如何前缀表达式?如果从左到右,就需要多次扫描,,或者根据语法树转换成后缀表达式。
需要运算多少次?有多少个运算符就扫描多少遍

5、操作数之间的相对次序会改变吗?操作数的相对次序不变
6、后缀、前缀:求最小表达式,什么是最小表达式
7、如何求这些表达式?算法优先级算法
    1、简述算法优先级算法?
​​​首先判断类型,如果是操作数,就入操作数栈。如果是操作数栈,需要分两种情况,如果op(当前)> op(栈顶),那么就入栈,否则就弹出栈顶符号栈一个元素,弹出两个操作数栈内的元素进行反复计算,并将计算的结果入栈,直到满足op(当前)> op(栈顶)。如果是‘(’,直接入栈,如果是')',不入栈,并进行弹出符号栈进行计算,一直到满足当前栈元素是'(',就停止,并弹出'(';前面的步骤反复计算,一直到满足操作数栈为空或者只剩下结束符。​​​     2、算法优先级算法需要什么数据结构?
     操作数栈、符号栈

#队列

1、什么是队列?只允许一端进行插入,另一端进行删除的线性表。什么是队尾?什么是对头?只允许插入的叫做队尾(rear),只允许删除的叫队头(front).
2、队列有什么性质?FIFO
3、队列的应用?输入输出缓冲区。操作系统的作业排队。
4、队列类型定义是什么?数据关系如何描述?<a[i - 1], a[i]> a[i - 1] 为队头,a[i]为队尾。

5、链队列?为什么要加一个指针指向最后一个元素?地址随机的单元存储结构的队列

6、

7、为什么要让对头指针指向head?尾指针指向哪里?
8、如何入队?如何出队?需要修改哪些量?
9、如果删除最后一个元素的时候,队尾指针需要修改吗?

10、什么是顺序队列?使用顺序存储结构的队列叫做顺序队列。地址连续的地址单元
11、空间大小能够用头指针和尾指针算吗?
12、如何实现?用一个一维数组来作为顺序存储空间,再设两个指示器,front,rear。约定front = rear,队列为空。队尾指针始终指向最后一个元素的后一个位置。
13、这样会带来一个问题,当对头指针向前移动的时候,前面会多出一个些闲置空间,如何充分利用空间呢(假溢出)?1、每删除一个元素的时候,元素依次向队头移动一个位置,这样效率很慢。2、把对垒看成循环队列。
14、如何实现循环队列?

Q.rear = (Q.rear + 1) % MAXSIZE顺时针移动一个位置
Q.front = (Q.front + 1.) % MAXSIZE顺时针移动一个位置

15、在循环队列的时候,会出现二义性,如何判满?如何判空?1、浪费一个空间2、用一个标志变量s

if (Q.rear+1) % MAXSIZSE == Q.front  队列满
if (Q.rear == Q.front) 空
这样的话对于头指针永远不hi到达队尾指针,只有队头指针到达队尾指针的时候,队列为空。