问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言 定义一个函数实现两个集合的相加运算。(用链表的方式实现)

发布网友 发布时间:2023-07-19 15:44

我来回答

1个回答

热心网友 时间:2024-11-23 13:50

#include #include #include #define N 7 typedef enum { add, nul, sub, div1, yu, l, r }OP; int a[N][N] = { { 0, 0, -1, -1, -1, 1, 2 }, { 0, 0, -1, -1, -1, 1, 2 }, { 1, 1, 0, 0, 0, 1, 2 }, { 1, 1, 0, 0, 0, 1, 2 }, { 1, 1, 0, 0, 0, 1, 2 }, }; int top; OP beg; int b[1024]; OP op[1024]; void init_nu( ){ top = 0; } void push_nu( int term ){ b[top++] = term; } int pop_nu( ){ return b[--top]; } int is_empty_nu( ){ return top == 0; } void destory_nu( ) { top = 0; } void init_sign( ){ beg = 0; } void push_sign( OP sign ){ op[beg++] = sign; } void destory_sign( ){ beg = 0; } OP pop_sign( ){ return op[--beg];} OP get_sign( ){ return op[beg - 1]; } int is_empty_sign( ){return beg == 0; } int eval() { int i, j; i = pop_nu(); j = pop_nu(); switch( pop_sign() ) { case '+': push_nu( j + i ); break; case '-': push_nu( j - i ); break; case '*': push_nu( j * i ); break; case '/': push_nu( j / i ); break; case '%': push_nu( j & i ); break; defult: break; } } int change( char *s ) { int i; int n = strlen( s ); for( i = 0; i n; i++ ) { if( s[i] >= '0' && s[i] = '0' && s[i] <= '9' ) push_nu( 10 * pop_nu() + s[i++] - '0' ); switch( s[i] ) { case '+': while( a[add][get_sign()] <= 0 ) eval(); push_sign( add ); break; case '-': while( a[nul][get_sign()] <= 0 ) eval(); push_sign( nul ); break; case '*': while( a[sub][get_sign()] <= 0 ) eval(); push_sign( sub ); break; case '/': while( a[div1][get_sign()] <= 0 ) eval(); push_sign( div1 ); break; case '%': while( a[yu][get_sign()] <= 0 ) eval(); push_sign( yu ); break; case '(': push_sign( l ); break; case ')': while( (get_sign()) != l ) eval(); pop_sign(); break; defult: break; } } return pop_nu(); } int main( void ) { char *s = "((5-3)*2+4/2&2+1)"; init_nu(); init_sign(); printf( "%d\n", change( s )); destory_nu(); destory_sign(); return 0; } 以前编的,希望对你有帮助。别忘了给我分。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
干货| 手把手教你搭建一套OpenStack云平台 口碑最好的切菜刀 什么材质的菜刀最好用 菜刀的种类和用途 张九龄三首古诗词赏析(风格清淡,语言素练) word文字底纹颜色怎么设置在哪 东施效颦这则语言告诉人们一个怎样的道理,欲意又是什么呢 胜芳买房多少钱 胜芳谁最有钱 315儿童智能手表是哪个牌子 孕囊看男女准不准 c++ 基本题 律师和司法局是同一个单位吗 青春若梦人未央散文诗欣赏 国产油锯的气缸怎么区分质量好坏?请给些具体的回答,可举例比较哪些品牌... 9000W的汽油锯用什么型号的汽缸 感情淡了老婆让写反思怎么写 昨天晚上偷偷没睡觉,我媳妇让我写一百字检讨书,怎么写 高分悬赏!老婆让我写检讨书和保证书 番禺石基大龙村到中山沙溪怎么座车 求助,华为麦芒4不知道密码怎么解开,我对象手机我不知道密码,他也不告... 做梦梦见别人家的大门墩开口是什么意思? 梦见家两面大门墩倒了三截? 梦见围墙的大门墩倒了的预兆 吴奇隆第一次尝试花滑表演的时候,发生了些什么事情? 吴奇隆不再隐瞒,直说出刘诗诗一夜输光2亿事件,背后发生了什么? 吴奇隆的成长经历中,都发生了哪些大事 我在淘宝用1299元的正品价格买了一双AF1小麦高帮,结果到货在毒APP上 ... 求大神鉴定这个af1小麦拜托 个人信贷业务操作风险的控制要点包括()。 88厘米的牛仔裙子大概多长呢 ...定义集合A,B的运算: A*B={xIx∈A或x∈B且x不属于A∩B} 求(A*B)*... ...的集合交,并,差运算,设计采用定义集合,用集合运算表达式求值的方式进 ... 高昕的人物经历 北京能源集团有限责任公司发过哪些资产证券化产品 手机锁屏密码忘了怎样把里面的通话录音调出来 &#xFFFC; 苹果7怎么能在锁屏或解锁后用小圆点打开语音备忘录来录音? 格力中央空调制冷设置 银行股暴涨的原因 多疑的伴侣的心理特征是什么? 多疑的人的表现? 三峡工程八年来建设管理经验综述(三) 邮政车的车厢哪能做 多发性胆结石的治疗怎么治 2022年11月27日看望病人行吗 2022年11月27日适合看望病人吗 我今年30想问我买什么保险合适 情况说明怎么写情况说明如何写 经典爱情语录——杨绛 祝福生日的句子简短 老大叫李子硕老二男孩叫什么 大儿子叫辛雨泽,老二男孩叫什么名字