全球旧事资料 分类
输出串
SqStackS
fori
tiSle
gth1i0i
对输入串逆序扫描
ifStrchi48Strchi57
OutputchiStrchi
假如是操作数,把它添加到输出串中。
Outputle
gthifStrchi
假如是右括号,将它压栈。
PushSStrchiwhileIsOperatorsi
如果是运算符
iftop0GetTopSPrecede
ceStrchiPrecede
ceGetTopS

PushSStrchi
break
elsePopSe
Outputchie
Outputle
gth
ifStrchi假如是左括号,栈中运算符逐个出栈并输出,直到遇到右括号。右括号出栈并丢弃。
whileGetTopS
OutputchiPopS
Outputle
gth



whileStop1假如输入完毕,栈中剩余的所有操作符出栈并加到输出串中。
OutputchOutputch
OutputchPopS
fretur
output

voidCreatBiTreeTS
由中缀表达式生成表达式二叉树
Stri
gF
SqStackSq
用以存放生成的二叉树结点
I
itStackSq
FCo
vertS
求得S的前缀表达式
foriFle
gth1i0i
IfIsOperatorFchi
T
ewTNode
TdataFchi
TlchildNULL
TrchildNULL
PushSqT
else
T
ewTNode
TdataFchi
TlchildPopSq
TrchildPopSq
PushSqT

i
tCalci
tacharopri
tb计算
switchopr
caseretur
ab
caseretur
ab
caseretur
ab
caseretur
ab


i
tValueTNodeT
ifTlchildNULLTrchildNULL
retur
Tdata
else
retur
CalcValueTlchildTdataValueTrchild

主函数伪码算法。
voidmai

Face
输出界面及相关信息
do
cout”Pleasei
puta
expressio
”e
dl
ci
Str
JudgeExpS
判断输入的表达式是否合法。
TCreatBiTreeS
NValueT
fcout”Thevalueofthisexpressio
is”Ne
dlcout”Todoa
othercalculatio
YN”ci
eife’y’flag1elseflag0whileflag
mai
测试结果
附录(带注释的源程序)CStackhi
cludeiostreamusi
g
amespacestd
defi
eStack_Size100
typedefstruct
charelemStack_Sizei
ttopCStack
字符类型顺序栈
voidI
itCStackS
Selem
ewcharStack_SizeifSelemError
好听全球资料 返回顶部