資料結構實驗之棧與佇列三:字尾式求值
time limit: 1000 ms memory limit: 65536 kib
submit statistic discuss
problem description
對於乙個基於二元運算子的字尾表示式(基本運算元都是一位正整數),求其代表的算術表示式的值。
input
輸入乙個算術表示式的字尾式字串,以『#』作為結束標誌。
output
求該字尾式所對應的算術表示式的值,並輸出之。
sample input
59*684/-3*+#
sample output
57 hint
基本運算元都是一位正整數!
source
#include
#include
int top=0,i,stack[1001];
int main()
else
if(a[i]=='+')
else
if(a[i]=='-')
else
if(a[i]=='*')
else
if(a[i]=='/')
}printf("%d\n",stack[top]);
return
0;}
think:
先把串裡的數先入棧,然後當遇到乙個運算子的時候就把棧頂和棧次元素進行相應的運算,接著top指標要後退啊,後退到棧次元素上,仔細想一下就是兩個元素運算完之後會變成乙個元素,在棧中表現為退回到棧次元素,最後只剩乙個數了就可以輸出
資料結構之棧與佇列
寫在前面 棧與佇列是兩種不同特點的資料結構。棧遵循著先進後出的特點,它就像乙個器皿,先放進去的後被取出來,後放進去也就是靠近瓶口的先出來。佇列,就像它的名字一般,它的結構類似於排隊,先進先出,後進後出。棧的實現package stack public class mystack public mys...
資料結構之棧與佇列
順序棧儲存結構 define stack size 50 typedef structstack 順序棧初始化 void initstack stack s 順序進棧 int push stack s,type x 順序棧出棧 int pop stack s,type x 鏈棧儲存結構 typede...
資料結構 之 棧與佇列
順序表實現 class stack object 棧 def init self self.list 選用順序表或鍊錶 defpush self,item 壓棧 self.時間複雜度o 1 self.list.insert 0,item 頭部插入,時間複雜度o n 說明 鍊錶結構的話,頭部插入。de...