国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

史上最強最細膩的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語言學習教程【李慧芹老師】的評論 (共 條)

分享到微博請遵守國家法律
文化| 无棣县| 泌阳县| 卢湾区| 定兴县| 安乡县| 阳江市| 民勤县| 垫江县| 南雄市| 金溪县| 宝清县| 沧源| 绵竹市| 惠州市| 冷水江市| 台东市| 揭阳市| 漳平市| 塘沽区| 吉隆县| 禹州市| 勃利县| 当雄县| 东阳市| 九龙城区| 长寿区| 朝阳县| 勐海县| 将乐县| 正宁县| 建宁县| 安阳县| 石柱| 积石山| 华安县| 柯坪县| 东丰县| 茶陵县| 威远县| 韶山市|