思路:根據輸入的字串 遇到數字 入棧 ,遇到運算子彈出兩個數字計算,計算結果入棧,最後棧中剩餘的數字就是最終結果。
**示例:
//字尾表示式求解
void
postfix
(char str[
], stack s)
i++;}
printf
("%d"
,top
(s))
;}
完整程式:
#include
#include
#include
#include
//棧的定義
struct node
node;
typedef
struct node *stack,
*ptrnode;
//建立棧
stack creatstack
(int max)
intisfull
(stack s)
intisempty
(stack s)
void
push
(char x, stack s)
// s->array[++s->topofstack] = x;
}void
pop(stack s)
char
top(stack s)
//字尾表示式求解
void
postfix
(char str[
], stack s)
i++;}
printf
("%d"
,top
(s));}
intmain()
字尾表示式求解
問題描述 字尾表示式也叫逆波蘭式,中綴到字尾舉例 4 2 3 6 4 2 3 6 3 4 2 5 3 4 2 5 問題是求解類似以上右側的字尾表示式。思路1 遞迴 1.從右向左掃瞄 2.因為字尾表示式裡都是雙目運算子,且沒有括號,所以遇到操作符可以遞迴求解,例如遇到乘號 case return ex...
求解字尾表示式 RPN
package stack.rpn import stack.alstack 計算rpn的值 author kyle version 1.0 public class calcrpn 計算字尾表達是的值,目前只支援整數 return private static int calc string ex...
C語言 利用 字尾表示式 求解 中綴表示式
一名大一初學狗,最近在學習棧的應用,在此記錄解題 題目描述 給出乙個表示式,其中運算子僅包含 要求求出表示式的最終值 資料可能會出現括號情況,還有可能出現多餘括號情況 資料保證不會出現 maxlongint的資料 資料可能回出現負數情況 輸入僅一行,即為表示式 輸出僅一行,既為表示式算出的結果 樣例...