expresión analítica --- realización C ++

 

1. infija, prefijo, expresión sufijo

  Para una persona puede identificar la expresión: 1 + (2 + 3) * 4-5

  La posición del operador divide en:

    ① expresión infija: 1 + (2 + 3) * 4-5

    ② prefijo de expresión: - 1 + + * 2345  

    ③ expresión postfix: 1 2 3 * 4 + + 5 -

  Prefijo y de sufijo expresión que ya contiene la orden de cálculo, no hay necesidad de determinar los paréntesis prioritarios

2. Encienda prefijo infija

  2,1 infija su vez prefijo

  ① precedencia operador de la prensa entre corchetes toda unidad operativa

    ((1 + ((2 + 3) * 4)) - 5)

  ② el operador mueve a la parte frontal del soporte correspondiente

    - (+ (1 * (+ 2 3) 4)) 5)

  ③ eliminación de los soportes, para dar prefijo expresión

    - + 1 * + 2 3 4 5

 La conversión de implementadas en ordenador:

(1) un árbol de expresión

(2) Pila 

  ① dos pilas, los operadores de pila SL, resultados intermedios S2 pila de tienda

  ② derecho a la expresión de exploración izquierda

  ③ encuentro operando, pulse S2

  ④ operador encontrado, lo compara con la pila S1 precedencia de los operadores

    Si S1 está vacío, o la parte superior de la pila es el paréntesis derecho ")", entonces el registro del operador S1

    Cuando la prioridad de los operadores que la altura de pila o igual, el operador empuje S1

    Si la prioridad es menor que la parte superior de la pila, los operadores de la pila S1 a presión S2 dentro de la pila, y luego continuar con la pila operador de comparación S2

  ⑤ soportes encontrados

    S1 directamente en el paréntesis derecho

    paréntesis izquierdo, el operador expulsar secuencialmente la pila S1 a S2, hasta que encuentra el soporte derecho, pila entonces estos soportes descartados

  ⑥ Repita hasta que la expresión más a la izquierda

  ⑦ El resto de los operadores de S1 a S2 presión secuencialmente de expulsión

  ⑧ girar los elementos pesados ​​pop-S2 para dar prefijo expresión  

 

  cálculo analítico 2,2 expresión Prefijo

  ① de derecha a izquierda expresión de exploración

  ② un numeral, el empuje digital, la experiencia del operador, tomadas dos números hacen operaciones de pila: pila op-tapa, los resultados de la pila

  ③ se repite hasta que la expresión más a la izquierda

3. infija a su vez sufijo

  3.1 infija a su vez sufijo  

  ① precedencia operador de la prensa entre corchetes toda unidad operativa

  ② el operador mueve a la parte trasera de los soportes correspondientes

  ③ eliminación de los soportes, para dar prefijo expresión

(1) un árbol de expresión

(2) Pila

 

  liquidación de la expresión de análisis 3.2 postfix 

  ① explorar de izquierda a derecha la expresión

  ② un número, un impulso digital, la experiencia del operador, tomadas dos números hacen operaciones de pila: pila op-tapa, los resultados de la pila

  ③ repetida, hasta que el extremo derecho de la expresión

4. Determinar la legalidad de expresión

La legitimidad (1) de los soportes

 Aquí sólo la expresión entre corchetes {} [] (), no los números y operadores temporales, y no hay entrada de la cadena de caracteres adicional expresión no válida

} Else {return false ; }}

 

(2) la legitimidad Operadores

 

Supongo que te gusta

Origin www.cnblogs.com/taoXiang/p/12563477.html
Recomendado
Clasificación