¿Qué estructura de datos es más adecuada para una expresión postfix?

Demonios si

APILAR

Las expresiones de postfix generalmente se convierten de expresiones infix usando la estructura de datos de pila.

Hay un buen algoritmo para estas conversiones

Aquí vamos

Tenemos la matriz Postfix [] Array, Stack, Infix []

  1. Escanee la expresión dada (Infix) de izquierda a derecha [un carácter a la vez].
  2. Compruebe si el carácter dado es un operador [+, -, *, /, ^ etc.] u operando.
  3. Si es un operando, cópielo en la matriz de prefijos.
  4. Si es un operador entonces,
  • Compruebe si la pila está vacía o no
  • Si está vacío, empuje al operador en la pila y vaya al paso 5.
  • Si la pila no está vacía, compare la precedencia de la parte superior de la pila con el operador.
  • Si la parte superior de la pila tiene mayor o igual precedencia, revíselo y cópielo en la matriz de postfix.
  • Si el operador tiene mayor prioridad, empújelo en la pila y vaya al paso 5.
  • Si la pila no está vacía, vuelva al paso 4 (i).

5. Continúe resolviendo la expresión de la manera habitual hasta que la expresión llegue a su fin.

6. Haga estallar el operando restante en la pila y cópielo en la matriz postfix.

Stack es la estructura de datos más adecuada para evaluar expresiones escritas en anotaciones como prefijo, infijo o postfix (también conocida como notación de pulido inverso). aunque existen muchas estructuras de datos auxiliares a través de las cuales podemos resolver tales problemas de conversiones, pero la más básica, fácil de entender y eficiente (en términos de simplicidad) es Stack .

Hay dos formas de crear Stack en cualquier propósito general, lenguajes de programación de alto nivel como C, C ++, Java, etc.

  1. Via Array (Adecuado para expresiones pequeñas)
  2. Vía Lista enlazada (recomendada)

La pila es la mejor estructura de datos para esto.

Encuentre el código para Prefix aquí:

Programa C para evaluar una expresión de prefijo

Programa C para convertir Infix a expresión de prefijo.

También puede consultar aquí para obtener más tareas asignadas en las universidades de ciencias de la computación.

Espero haber podido ayudarte.

Vota si lo encontraste útil 🙂

Depende de para qué lo requiera.

Si simplemente desea leer e imprimir la expresión, la matriz es adecuada.

Pero si desea realizar operaciones, se requiere un árbol. En general, el árbol de expresión se crea para almacenar y procesar una expresión de postfix. Los nodos hoja contienen los operandos y los nodos no hoja contienen los operadores. Necesita una pila para crear el árbol de expresión a partir de una expresión de postfix.

¡¡Apilar!!

Sí, stack es la estructura de datos más adecuada para la expresión postfix.

Una pila es óptima.

Mira este video sobre conversión

More Interesting

¿Qué estructuras de datos admiten la inserción, eliminación y selección de un elemento aleatorio con un límite de complejidad de tiempo [matemática] O (1) [/ matemática]?

¿Qué es exactamente el algoritmo?

¿Cuál es el punto de usar programación dinámica cuando la complejidad de tiempo en la mayoría de los códigos es O (n ^ 2) (que no es tan bueno, es decir, usamos dobles para bucles incluso en DP)?

Cómo aprender algoritmos y estructuras de datos como estudiante de secundaria

¿Cuáles son algunos algoritmos nuevos e interesantes en bioinformática / informática genómica?

¿Es posible codificar un programa que, dada una secuencia finita, encuentra al menos 2 reglas posibles que generan las series restantes?

¿Cuáles son algunos ejemplos de colas de prioridad en Java?

Ya tengo 30 años, pero mis habilidades de programación y algoritmo no son lo suficientemente buenas. ¿Qué tengo que hacer?

¿Cuál es la necesidad de determinar la complejidad temporal de un algoritmo o código?

Si hay una matriz de 101 números que consiste en números del 1 al 100 con el número repetido, ¿cómo encuentra el número repetido en el número mínimo de iteraciones (en el programa C)?

¿Qué puedo hacer para mejorar mi habilidad matemática en estructura de datos y programación general?

¿Cómo un programa de razonamiento poco preciso asigna 8 gb de memoria en 3 segundos?

¿Cuáles son ejemplos de problemas en los que entrenar un ANN es la solución óptima?

¿Qué es un algoritmo de hashing seguro?

¿Cuál es la mejor manera de analizar un currículum en los campos de la base de datos? ¿Qué hacer si tiene muchos currículums y necesita que los datos se extraigan en elementos individuales que se pueden colocar en una base de datos?