算術表達式求值的流程其中OPTR為算術符棧OPND為操作數棧precede(operoper)是比較運算符優先級別的函數operate(opndoperopnd)為兩操作數的運算結果函數(#表示運算起始和終止符號)【西北工業大學 六 (分)】
FUNCTION exp_reduced:operandtype;
INITSTACK(OPTR);PUSH(OPTR#)INITSTACK(OPND);read(w)
WHILE NOT((w=#) AND (GETTOP(OPTR)=#)) DO
IF NOT w in op THEN PUSH(OPNDw);
ELSE CASE precede(GETTOP(OPTR)w)OF
<:[()_______; read(w);]
=:[()_______; read(w);];
>:[theta:=POP(OPTR);b:=POP(OPND);a:=POP(OPND);()_______]
ENDC;
RETURN(GETTOP(OPND));
ENDF;
.根據需要用適當的語句填入下面算法的_______中【北京郵電大學 四(分)】
問題設有n件物品重量分別為www…wn和一個能裝載總重量為T的背包能否從n件物品中選擇若干件恰好使它們的重量之和等於T若能則背包問題有解否則無解解此問題的算法如下
FUNCTION kanp_stack(VAR stackw:ARRAY[n] OF real; VAR top:integer; T:real):boolean; {w[n] 存放n件物品的重量依次從中取出物品放入背包中檢查背包重量若不超過T則裝入否則棄之取下一個物品試之若有解則返回函數值true否則返回false}
BEGIN
top:=; i:=; {i指示待選物品}
WHILE ()_______ AND()_______DO
[IF ()______ OR ()_______ AND (i<n)
THEN [top := ()_______ ;stack[top] :=i; {第i件物品裝入背包}
T:=Tw[i]];
IF T= THEN RETURN (()_______) {背包問題有解}
ELSE [IF (i=n ) AND (top>)
THEN [i:=()_______; {取出棧頂物品}
top:= ()_______ T:= ()_______ ]; {恢復T值}
i:=i+ {准備挑選下一件物品}
];
];
RETURN(()_______) {背包無解}
END;
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/sjjg/201311/23238.html