欢迎来到天天文库
浏览记录
ID:39049942
大小:31.00 KB
页数:3页
时间:2019-06-24
《利用顺序栈将一个非负的十进制整数N转换为对应的B进制数》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、#include#include#defineinit_size100#defineincreasesize10typedefstruct{int*base;int*top;intstacksize;}SqStack;voidOutPrint(SqStack&s){SqStackp=s;if(p.base==p.top){printf("栈当前为空");}else{inti=0;printf("栈当前数据:");while(i2、+;}}}voidCreateStack(SqStack&s){s.base=(int*)malloc(init_size*sizeof(int));s.top=s.base;s.stacksize=init_size;}voidGetTop(SqStack&s,int&e){if(s.base==s.top)printf("这是一个空的栈");else{e=*(s.top-1);printf("栈顶元素为%d",e);}}voidPush(SqStack&s,inte){if(s.top-s.base>=s.stacksize)s.base3、=(int*)realloc(s.base,(s.stacksize+increasesize)*sizeof(int));*s.top++=e;s.stacksize++;}voidPop(SqStack&s,int&e){if(s.base==s.top){printf("这是空的栈");e=-1;}else{e=*--s.top;s.stacksize--;//printf("出栈元素是%d.",e);}}voidconversion(inta,intb){SqStacksc;inte;intsa=a;CreateStack(sc);whi4、le(a){Push(sc,a%b);a=a/b;}printf("%d转化为%d进制:",sa,b);intc=sc.top-sc.base;for(inti=0;i5、,&data);Push(s,data);OutPrint(s);break;case2:Pop(s,data);if(data!=-1){printf("出栈元素是%d.",data);}OutPrint(s);break;case3:printf("输入要转换的十进制数以及进制数:");scanf("%d,%d",&a,&b);conversion(a,b);break;}}}
2、+;}}}voidCreateStack(SqStack&s){s.base=(int*)malloc(init_size*sizeof(int));s.top=s.base;s.stacksize=init_size;}voidGetTop(SqStack&s,int&e){if(s.base==s.top)printf("这是一个空的栈");else{e=*(s.top-1);printf("栈顶元素为%d",e);}}voidPush(SqStack&s,inte){if(s.top-s.base>=s.stacksize)s.base
3、=(int*)realloc(s.base,(s.stacksize+increasesize)*sizeof(int));*s.top++=e;s.stacksize++;}voidPop(SqStack&s,int&e){if(s.base==s.top){printf("这是空的栈");e=-1;}else{e=*--s.top;s.stacksize--;//printf("出栈元素是%d.",e);}}voidconversion(inta,intb){SqStacksc;inte;intsa=a;CreateStack(sc);whi
4、le(a){Push(sc,a%b);a=a/b;}printf("%d转化为%d进制:",sa,b);intc=sc.top-sc.base;for(inti=0;i5、,&data);Push(s,data);OutPrint(s);break;case2:Pop(s,data);if(data!=-1){printf("出栈元素是%d.",data);}OutPrint(s);break;case3:printf("输入要转换的十进制数以及进制数:");scanf("%d,%d",&a,&b);conversion(a,b);break;}}}
5、,&data);Push(s,data);OutPrint(s);break;case2:Pop(s,data);if(data!=-1){printf("出栈元素是%d.",data);}OutPrint(s);break;case3:printf("输入要转换的十进制数以及进制数:");scanf("%d,%d",&a,&b);conversion(a,b);break;}}}
此文档下载收益归作者所有