《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。