wordpress 数据库ip深圳白帽优化
wordpress 数据库ip,深圳白帽优化,外贸英文网站建设价格,公司网站友情链接题目要求#xff1a;给定一个字符串如“12*3”,没有括号#xff0c;要求利用栈的知识来处理结果算出答案
我的思路#xff1a;建立两个栈#xff0c;一个存放数据#xff0c;一个存放符号#xff0c;再定义一个结构体做为操作的主体#xff0c;然后制作几个函数#x…
题目要求给定一个字符串如“12*3”,没有括号要求利用栈的知识来处理结果算出答案
我的思路建立两个栈一个存放数据一个存放符号再定义一个结构体做为操作的主体然后制作几个函数分别承担栈的基本操作比较优先级数学计算等功能。入栈时如果是数字则直接入栈如果是符号则先判断栈是否为空如果为空则直接入栈如果不为空则先与栈顶字符比较优先级如果优先级低于栈顶字符则从数字栈中弹出顶端的两个值从符号栈中弹出一个值先完成计算然后再入到数字栈中如果优先级高于栈顶字符再入栈最后再统一运算
#includestdio.h
#includestdlib.h
#includestring.h
typedef struct
{int *data;int top;
}zhan;
typedef struct
{char* data;int top;
}fu;
typedef struct
{zhan* num;fu*sign;
}yunsuan;
zhan* creatzhan()
{zhan* point (zhan*)malloc(sizeof(zhan));point-data (int*)malloc(sizeof(char) * 100);point-top -1;return point;
}
fu* creatfu()
{fu* point (fu*)malloc(sizeof(zhan));point-data (char*)malloc(sizeof(char) * 100);point-top -1;return point;
}
yunsuan* creatyunsuan()
{yunsuan* good (yunsuan*)malloc(sizeof(yunsuan));good-num creatzhan();good-sign creatfu();return good;
}
int judgezhan(zhan* point)
{if (point-top -1)\{return -1;}return 1;
}
int judgefu(fu* point)
{if (point-top -1)\{return -1;}return 1;
}
void pushnum(yunsuan*point,int num1)
{point-num-data[point-num-top] num1;
}
void pushsign(yunsuan* point, char sign1)
{point-sign-data[point-sign-top] sign1;
}
void popnum(yunsuan* point)
{int p judgezhan(point-num);if (p ! -1)point-num-top--;
}
void popsign(yunsuan* point)
{int p judgefu(point-sign);if (p ! -1)point-sign-top--;
}
int topzhan(zhan* point)
{int p judgezhan(point);if (p ! -1){return point-data[point-top];}}
char topfu(fu* point)
{int p judgefu(point);if (p ! -1){return point-data[point-top];}}
int youxianji(char x)
{if (x || x -){return 1;}else{return 2;}
}
int compare(int first, int next)
{if (first next){return 1;}else{return 2;}
}
int conclude(int num1, int num2, char ch)
{int result0;switch (ch){case : {result result num2 num1;break;}case -: {result result num2 - num1;break;}case *: {result result num2 * num1;break;}case /: {result resultnum2 / num1;break;}}return result;
}
int main()
{char arr[] { 12*3 };yunsuan* point creatyunsuan();int x 0;int total 0;while (x ! \0){if (x ! x ! - x ! * x ! /){pushnum(point, arr[x]-0);x;}else{do {if (judgefu(point-sign) -1){pushsign(point, arr[x]);x;}else{if (compare(youxianji(topfu(point-sign)), youxianji(arr[x])) 1){pushsign(point, arr[x]);x;}else{int a topzhan(point-num);popnum(point);int b topzhan(point-num);popnum(point);char c topfu(point-sign);popsign(point);int f conclude(a, b, c);pushnum(point, f);}}} while (compare(topfu(point-sign), arr[x]) 1);}}while (judgefu(point-sign) judgezhan(point-num)){int a1 topzhan(point-num);popnum(point);int b1 topzhan(point-num);popnum(point);char c1 topfu(point-sign);popsign(point);int f1 conclude(a1, b1, c1);total total f1;pushnum(point, f1);}printf(%d, total);return 0;
}
出了问题但找不到解决方法求大佬帮助
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/89873.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!