1. 程式人生 > >棧的應用——算數表示式的求值

棧的應用——算數表示式的求值

 在編譯用高階語言設計的程式中,常常要處理表達式,必須將表示式翻譯成機器程式碼,求出表示式的值。表示式求值的實現方法是棧的一個典型的應用例項。
 例如:算數表示式a+(b-cd)*e
 在這種書寫形式下,運算子一般出現在兩個運算元之間,稱為中綴表示式。但這種中綴表示式有利於人的理解,不利於機器的理解;
 因此在編譯系統中,往往把它轉化為一種字尾表示式,字尾表示式也稱逆波蘭表示式。例如:中綴表示式a*b/c轉化為字尾表示式為 ab*c/ 。a+(b-c/d)*e對應的字尾表示式為abcd/-e*+。
 同理可以知道字首表示式。