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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构-栈5-栈的应用-后缀转中缀

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构-栈5-栈的应用-后缀转中缀 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#define _CRT_SECURE_NO_WARNINGS #include"LinkList.c" #include<stdio.h> #include<stdlib.h> #include<string.h>//遇到數字壓棧 //遇到符號,取出棧的第一個元素為右操作符,第二個元素為左操作符。計算完畢后壓棧typedef struct MYNUM {LinkNode node;int val; }MyNum;int IsNumber(char c) {return c >= '0' && c <= '9'; }int Caculate(int left,int right,char c) {int ret = 0;switch (c){case '+':ret = left + right;break;case '-':ret = left - right;break;case '*':ret = left * right;break;case '/':ret = left / right;break;default:break;}return ret; }int main() {char* str = "831-5*+";char* p = str;LinkList* stack = Init_linkList();while (*p != '\0'){//如果是數字 直接入棧if (IsNumber(*p)){MyNum* num = (MyNum*)malloc(sizeof(MyNum));num->val = (*p)-'0'; //轉換為數字printf("壓入元素為:%d", num->val);Push_LinkList(stack, (LinkNode*)num);}else {//先從棧中彈出右操作數MyNum* right = (MyNum*)Top_LinkList(stack);int rightNum =right->val;Pop_LinkList(stack);free(right);MyNum* left = (MyNum*)Top_LinkList(stack);int leftNum = left->val;Pop_LinkList(stack);free(left);//結果入棧int ret=Caculate(leftNum, rightNum, *p);MyNum* num = (MyNum*)malloc(sizeof(MyNum));num->val =ret; //轉換為數字Push_LinkList(stack,(LinkNode*)num);}p++;}if (Size_LinkList(stack) == 1){MyNum* num=(MyNum*)Top_LinkList(stack);printf("運算結果為:%d\n", num->val);Pop_LinkList(stack);free(num);}system("pause");return 0; }

總結

以上是生活随笔為你收集整理的数据结构-栈5-栈的应用-后缀转中缀的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。