1. 程式人生 > >[原始碼和文件分享]C語言的基於棧實現的表示式求值

[原始碼和文件分享]C語言的基於棧實現的表示式求值

一、目的

  • 理解中綴表示式求值的過程

  • 理解中綴轉字尾表示式求值的過程

  • 掌握堆疊的應用

二、問題描述

  • 綴表示式,其中包含括號,加減乘除,乘方等運算,利用中綴表示式,對錶達式分析並求值

  • 入的中綴表示式轉換為字尾形式,顯示字尾形式,並通過後綴形式求值

三、資料結構

  1. //運算子結構體
  2. typedef struct
  3. {
  4. char OPname; //儲存運算子
  5. int inOP; //儲存棧內級別
  6. int outOP; //儲存棧外級別
  7. }OP;
  8.  
  9. //定義運算數棧
  10. typedef struct
  11. {
  12. datatype data[MAXSIZE];
  13. int top;
  14. }SeqStack;
  15.  
  16. //定義運算子棧
  17. typedef struct
  18. {
  19. char data[MAXSIZE];
  20. int top;
  21. }charStack;
  22.  
  23. //----------------定義運算子陣列-----------------//
  24. OP OPPree[OPNUM] =
  25. {
  26. {'+',3,2},
  27. {'-',3,2},
  28. {'*',5,4},
  29. {'/',5,4},
  30. {'^',7,6},
  31. {'(',1,8},
  32. {')',0,1},
  33. {'#',-1,-1}
  34. };

四、演算法設計的思想描述

建立兩個棧,一個為char型別棧OPTR,另一個為int型別棧OPND,分別來儲存運算子和運算數。


參考文件和完整的文件和原始碼下載地址:

https://www.write-bug.com/article/1409.html