c语言案例六 速算24,参阅:C语言速算24数据结构课程设计最终版

《C语言速算24数据结构课程设计.doc》由会员分享,可免费在线阅读全文,更多与《C语言速算24数据结构课程设计(最终版)》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。

1、t;i=;while(s!='\')*当字符串没有结束时作以下处理*{if(isdigit(s))*判字符是否为数字*{k=;*k初值为*do{k=*k+s'';*将字符连接为十进制数字*i++;*i加*}while(s!='');*当字符不为‘’时重复循环*to=ush(to,k);*将生成的数字压入堆栈*}if(s=='+')*如果为'+'号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnum);*将栈顶元素取出存入num中*result=num+num;*将num和num相加存入result中*to=ush(to,result);*将result压入堆栈*}if(s=='')*如果为''号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnum);*将栈顶元素取出存入num中*result=numnum;*将num减去num结果存入result中*to=ush(to,result);*将result压入堆栈*}if(s=='*')*如果为'*'号*{to=to(to,amnum);*将栈顶元素取出存入n。

2、{rintf(quotStackisnull\nquot);*显示栈为空信息*return'';*返回空字符*}returntogtdata;*返回栈顶元素*}STACK*to(STACK*to,char*x)*取栈顶元素,并删除栈顶元素*{*x=tox(to);*读栈顶元素*to=o(to);*删除栈顶元素*returnto;*返回栈顶指针*}intemty(STACK*to)*判栈是否为空*{if(to==NULL)*如果为空*return;*返回*elsereturn;*否则返回*}inttext(char*s){settextstyle(,,);*三重笔划字体,放大倍*outtextxy(,,s);*输出字符串s*setusercharsize(,,,);*水平放大倍,垂直放大倍*settextstyle(,,);*无衬字笔划,放大倍*outtextxy(,,s);*输出字符串s*getch();*键盘输入任一字符*return;*返回*})*如果为空*{rintf(quotmemoryisoverflow\n!!quot);*显示内存溢出*exit();*退出*}gtdata=。

3、t;i=;while(s!='\')*当字符串没有结束时作以下处理*{if(isdigit(s))*判字符是否为数字*{k=;*k初值为*do{k=*k+s'';*将字符连接为十进制数字*i++;*i加*}while(s!='');*当字符不为‘’时重复循环*to=ush(to,k);*将生成的数字压入堆栈*}if(s=='+')*如果为'+'号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnum);*将栈顶元素取出存入num中*result=num+num;*将num和num相加存入result中*to=ush(to,result);*将result压入堆栈*}if(s=='')*如果为''号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnum);*将栈顶元素取出存入num中*result=numnum;*将num减去num结果存入result中*to=ush(to,result);*将result压入堆栈*}if(s=='*')*如果为'*'号*{to=to(to,amnum);*将栈顶元素取出存入n。

4、L;*栈顶指针置为空*returnto;*返回栈顶指针*}STACK*ush(STACK*to,charx)*入栈函数*{STACK*;*临时指针类型为STACK*=(STACK*)malloc(sizeof(STACK));*申请STACK大小的空间*if(==NULL)*如果为空*{rintf(quotmemoryisoverflow\n!!quot);*显示内存溢出*exit();*退出*}gtdata=x;*保存值x到新空间*gtlink=to;*新结点的后继为当前栈顶指针*to=;*新的栈顶指针为新插入的结点*returnto;*返回栈顶指针*}STACK*o(STACK*to)*出栈*{STACK*q;*定义临时变量*q=to;*保存当前栈顶指针*to=togtlink;*栈顶指针后移*free(q);*释放q*returnto;*返回栈顶指针*}chartox(STACK*to)*读栈顶元素*{if(to=cludequotctyehquot*字符操作函数*char[][]={{'A','','','','','','','','','','J','Q','K'},*扑克牌。

5、um中*to=to(to,amnum);*将栈顶元素取出存入num中*result=num*num;*将num与num相乘结果存入result中*to=ush(to,result);*将result压入堆栈*}if(s=='')*如果为''号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnum);*将栈顶元素取出存入num中*result=numnum;*将num除num结果存入result中*to=ush(to,result);*将result压入堆栈*}i++;*i加*}to=to(to,amresult);*最后栈顶元素的值为计算的结果*returnresult;*返回结果*}STACK*initstack(STACK*to)*初始化*{to=NULL;*栈顶指针置为空*returnto;*返回栈顶指针*}STACK*ush(STACK*to,intx)*入栈函数*{STACK*;*临时指针类型为STACK*=(STACK*)malloc(sizeof(STACK));*申请STACK大小的空间*if(==NULL=NULL)*栈是否为空*。

6、,用来表示*{'A','','','','','','','','','','J','Q','K'},{'A','','','','','','','','','','J','Q','K'},{'A','','','','','','','','','','J','Q','K'}};tyedefstructnode{intdata;structnode*link;}STACK;*栈*tyedefstructnode{chardata;structnode*link;}STACK;*栈*voidlay(void);*发牌的具体过程*voidrand(intj);*随机发牌函数*voidchange(char*e,char*a);*中缀变后缀函数*intcomuter(char*s);*后缀表达式计算函数*STACK*initstack(STACK*to);*栈初始化*STACK*ush(STACK*to,intx);*栈入栈运算*STACK*o(STACK*to);*栈删除栈顶元素*inttox(STACK*to);*栈读栈顶元素*STACK*to(STACK*to,int*x);*栈读出。

7、x;*保存值x到新空间*gtlink=to;*新结点的后继为当前栈顶指针*to=;*新的栈顶指针为新插入的结点*returnto;*返回栈顶指针*}STACK*o(STACK*to)*出栈*{STACK*q;*定义临时变量*q=to;*保存当前栈顶指针*to=togtlink;*栈顶指针后移*free(q);*释放q*returnto;*返回栈顶指针*}inttox(STACK*to)*读栈顶元素*{if(to==NULL)*栈是否为空*{rintf(quotStackisnull\nquot);*显示栈为空信息*return;*返回整数*}returntogtdata;*返回栈顶元素*}STACK*to(STACK*to,int*x)*取栈顶元素,并删除栈顶元素*{*x=tox(to);*读栈顶元素*to=o(to);*删除栈顶元素*returnto;*返回栈顶指针*}intemty(STACK*to)*判栈是否为空*{if(to==NULL)*如果为空*return;*返回*elsereturn;*否则返回*}STACK*initstack(STACK*to)*初始化*{to=NUL。

8、L;*栈顶指针置为空*returnto;*返回栈顶指针*}STACK*ush(STACK*to,charx)*入栈函数*{STACK*;*临时指针类型为STACK*=(STACK*)malloc(sizeof(STACK));*申请STACK大小的空间*if(==NULL)*如果为空*{rintf(quotmemoryisoverflow\n!!quot);*显示内存溢出*exit();*退出*}gtdata=x;*保存值x到新空间*gtlink=to;*新结点的后继为当前栈顶指针*to=;*新的栈顶指针为新插入的结点*returnto;*返回栈顶指针*}STACK*o(STACK*to)*出栈*{STACK*q;*定义临时变量*q=to;*保存当前栈顶指针*to=togtlink;*栈顶指针后移*free(q);*释放q*returnto;*返回栈顶指针*}chartox(STACK*to)*读栈顶元素*{if(to=cludequotctyehquot*字符操作函数*char[][]={{'A','','','','','','','','','','J','Q','K'},*扑克牌。

9、um中*to=to(to,amnum);*将栈顶元素取出存入num中*result=num*num;*将num与num相乘结果存入result中*to=ush(to,result);*将result压入堆栈*}if(s=='')*如果为''号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnum);*将栈顶元素取出存入num中*result=numnum;*将num除num结果存入result中*to=ush(to,result);*将result压入堆栈*}i++;*i加*}to=to(to,amresult);*最后栈顶元素的值为计算的结果*returnresult;*返回结果*}STACK*initstack(STACK*to)*初始化*{to=NULL;*栈顶指针置为空*returnto;*返回栈顶指针*}STACK*ush(STACK*to,intx)*入栈函数*{STACK*;*临时指针类型为STACK*=(STACK*)malloc(sizeof(STACK));*申请STACK大小的空间*if(==NULL=NULL)*栈是否为空*。

10、{rintf(quotStackisnull\nquot);*显示栈为空信息*return'';*返回空字符*}returntogtdata;*返回栈顶元素*}STACK*to(STACK*to,char*x)*取栈顶元素,并删除栈顶元素*{*x=tox(to);*读栈顶元素*to=o(to);*删除栈顶元素*returnto;*返回栈顶指针*}intemty(STACK*to)*判栈是否为空*{if(to==NULL)*如果为空*return;*返回*elsereturn;*否则返回*}inttext(char*s){settextstyle(,,);*三重笔划字体,放大倍*outtextxy(,,s);*输出字符串s*setusercharsize(,,,);*水平放大倍,垂直放大倍*settextstyle(,,);*无衬字笔划,放大倍*outtextxy(,,s);*输出字符串s*getch();*键盘输入任一字符*return;*返回*})*如果为空*{rintf(quotmemoryisoverflow\n!!quot);*显示内存溢出*exit();*退出*}gtdata=。

11、,用来表示*{'A','','','','','','','','','','J','Q','K'},{'A','','','','','','','','','','J','Q','K'},{'A','','','','','','','','','','J','Q','K'}};tyedefstructnode{intdata;structnode*link;}STACK;*栈*tyedefstructnode{chardata;structnode*link;}STACK;*栈*voidlay(void);*发牌的具体过程*voidrand(intj);*随机发牌函数*voidchange(char*e,char*a);*中缀变后缀函数*intcomuter(char*s);*后缀表达式计算函数*STACK*initstack(STACK*to);*栈初始化*STACK*ush(STACK*to,intx);*栈入栈运算*STACK*o(STACK*to);*栈删除栈顶元素*inttox(STACK*to);*栈读栈顶元素*STACK*to(STACK*to,int*x);*栈读出。

12、x;*保存值x到新空间*gtlink=to;*新结点的后继为当前栈顶指针*to=;*新的栈顶指针为新插入的结点*returnto;*返回栈顶指针*}STACK*o(STACK*to)*出栈*{STACK*q;*定义临时变量*q=to;*保存当前栈顶指针*to=togtlink;*栈顶指针后移*free(q);*释放q*returnto;*返回栈顶指针*}inttox(STACK*to)*读栈顶元素*{if(to==NULL)*栈是否为空*{rintf(quotStackisnull\nquot);*显示栈为空信息*return;*返回整数*}returntogtdata;*返回栈顶元素*}STACK*to(STACK*to,int*x)*取栈顶元素,并删除栈顶元素*{*x=tox(to);*读栈顶元素*to=o(to);*删除栈顶元素*returnto;*返回栈顶指针*}intemty(STACK*to)*判栈是否为空*{if(to==NULL)*如果为空*return;*返回*elsereturn;*否则返回*}STACK*initstack(STACK*to)*初始化*{to=NUL。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值