[源码和文档分享]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

猜你喜欢

转载自blog.csdn.net/demongwc/article/details/84935694