日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构实验之栈与队列三:后缀式求值

發(fā)布時間:2025/3/21 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构实验之栈与队列三:后缀式求值 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Description
對于一個基于二元運(yùn)算符的后綴表示式(基本操作數(shù)都是一位正整數(shù)),求其代表的算術(shù)表達(dá)式的值。

Input
輸入一個算術(shù)表達(dá)式的后綴式字符串,以‘#’作為結(jié)束標(biāo)志。

Output
求該后綴式所對應(yīng)的算術(shù)表達(dá)式的值,并輸出之。

Sample
Input
59684/-3+#
Output
57
Hint
基本操作數(shù)都是一位正整數(shù)!
規(guī)則:
從左到右遍歷表達(dá)式的每個數(shù)字和字符,遇到數(shù)字就進(jìn)棧,遇到符號,就將處于棧頂?shù)膬蓚€數(shù)字出棧,進(jìn)行運(yùn)算,運(yùn)算的結(jié)果在進(jìn)棧,一直到最終獲得結(jié)果。

#include<bits/stdc++.h>using namespace std;#define intsize 100000 #define addsize 100000typedef int elemtype;typedef struct {elemtype *base;elemtype *top;int stacksize; } Sqstack;int initstack(Sqstack &s) {s.base = (elemtype *)malloc(intsize *sizeof(elemtype));if(!s.base)return -1;s.top = s.base;s.stacksize = intsize;return 0; }int push(Sqstack &s, elemtype x) {if(s.top - s.base > s.stacksize){s.base = new elemtype[intsize + addsize];if(!s.base) return -1;s.top = s.base + addsize;s.stacksize += addsize;}*s.top++ = x;return 0; }elemtype pop(Sqstack &s) {elemtype x;return x = *--s.top; }void change(Sqstack &s, elemtype n) {int e1, e2;if(n == '+'){e1 = pop(s);e2 = pop(s);push(s, e1 + e2);}else if(n == '-'){e1 = pop(s);e2 = pop(s);push(s, e2 - e1);}else if(n == '*'){e1 = pop(s);e2 = pop(s);push(s, e1 * e2);}else if(n == '/'){e1 = pop(s);e2 = pop(s);push(s, e2 / e1);} }void show(Sqstack &s) {while(s.top != s.base){printf("%d", pop(s));}printf("\n"); }int main() {Sqstack s;char n;initstack(s);while(~scanf("%c", &n) && n != '#'){if(n >= '0' && n <= '9'){push(s, n - '0');}else{change(s, n);}}show(s);return 0; } 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的数据结构实验之栈与队列三:后缀式求值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。