五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

史上最強最細膩的linux嵌入式C語言學習教程【李慧芹老師】

2023-07-26 22:58 作者:fermatas  | 我要投稿

?
7.棧和隊列的應用-計算器實例2 P102 - 30:34
?

101 - 102 課堂代碼

``` C

#include <stdio.h>

#include <stdlib.h>

#include <ctype.h>

#include <string.h>


#include "sqstack.h"


static void compute(sqstack *snum, datatype *op) {

datatype n1, n2, n;

st_pop(snum, &n2);

st_pop(snum, &n1);

switch(*op) {

case '+':

n = n1 + n2;

break;

case '-':

n = n1 - n2;

break;

case '*':

n = n1 * n2;

break;

case '/':

n = n1 / n2;

break;

default:

exit(1);

}

st_push(snum, &n);

}


void deal_bracket(sqstack *snum, sqstack *sop) {

datatype old_op;

st_top(sop, &old_op);

while(old_op != '(') {

st_pop(sop, &old_op);

compute(snum, &old_op);

st_top(sop, &old_op);

}

st_pop(sop, &old_op);

}


static int get_pri(int op) {

switch(op) {

case '(':

return 0;

case '+':

case '-':

return 1;

case '*':

case '/':

return 2;

}

}


void deal_op(sqstack *snum, sqstack *sop, int op) {

datatype old_op;

if(st_isempty(sop) || op == '(') {

st_push(sop, &op);

return;

}


st_top(sop, &old_op);

if(get_pri(op) > get_pri(old_op)) {

st_push(sop, &op);

return;

}

while(get_pri(op) <= get_pri(old_op)) {

st_pop(sop, &old_op);

compute(snum, &old_op);

if(st_isempty(sop))

break;

st_top(sop, &old_op);

}

st_push(sop, &op);

}


int main() {

int i = 0;

char str[] = "(11+3)*2-5";

sqstack *snum, *sop;

int value = 0;

int flag = 0;


snum = st_create();

if(snum == NULL)

exit(1);


sop = st_create();

if(sop == NULL)?

exit(1);

while(str[i] != '\0') {

if(isdigit(str[i])) {

value = value * 10 + str[i] - '0';

flag = 1;

} else {

if(flag) {

st_push(snum, &value);

flag = 0;

value = 0;

}

if(str[i] == ')') {

deal_bracket(snum, sop);

} else {

deal_op(snum, sop, str[i]);

}

}

i++;

}

if(flag)

st_push(snum, &value);


int old_op;

while(!st_isempty(sop)) {

st_pop(sop, &old_op);

compute(snum, &old_op);

st_top(sop, &old_op);

}

int res;

st_top(snum, &res);

printf("result: %d\n", res);


st_destory(snum);

st_destory(sop);

exit(0);

}

```

史上最強最細膩的linux嵌入式C語言學習教程【李慧芹老師】的評論 (共 條)

分享到微博請遵守國家法律
三亚市| 南丹县| 屏山县| 铜川市| 黔西| 沂南县| 精河县| 鱼台县| 密云县| 伊春市| 凌海市| 锡林浩特市| 论坛| 麻阳| 定结县| 平利县| 广南县| 龙川县| 南召县| 青阳县| 长春市| 西乌| 江油市| 乐安县| 集贤县| 应用必备| 榆中县| 宁南县| 临邑县| 沈阳市| 荃湾区| 高要市| 嘉峪关市| 遂溪县| 卢湾区| 扎囊县| 屯门区| 廊坊市| 枝江市| 库尔勒市| 兴山县|