博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
顺序栈实现进制转换
阅读量:6591 次
发布时间:2019-06-24

本文共 1777 字,大约阅读时间需要 5 分钟。

1 #include 
2 3 #include
4 5 #define M 100 6 7 typedef int ElemType; 8 9 typedef struct { 10 11 ElemType data[M]; 12 13 int top; 14 15 }Stack; 16 17 void InitStack(Stack *s) { //初始化栈 18 19 s->top = -1; 20 21 } 22 23 int Push(Stack *s,ElemType e) { 24 25 if (s->top == M-1) { 26 27 printf("栈满\n"); 28 29 return 0; } 30 31 s->top++; 32 33 s->data[s->top]=e; return 1; 34 35 } 36 37 int Empty(Stack *s) { 38 39 return(s->top==-1); 40 41 } //判断是否为空 42 43 int Pop(Stack *s,ElemType *e) { 44 45 if(Empty(s)) { 46 47 printf("\n Stack is free"); 48 49 return 0; 50 51 } 52 53 *e=s->data[s->top]; 54 55 s->top--; 56 57 return 1; } //出栈 58 59 void Conversion(int N) { 60 61 int e; 62 63 Stack *s = (Stack *)malloc(sizeof(Stack)); 64 65 InitStack(s); 66 67 while(N){ 68 69 Push(s,N%2); 70 71 N=N/2; 72 73 } 74 75 while(!Empty(s)){ 76 77 Pop(s,&e); 78 79 printf("%d",e); 80 81 } 82 83 } 84 85 int main() { 86 87 int n,m; 88 89 while(1) { 90 91 printf("1:进行转换,2:退出\n"); 92 93 scanf("%d",&n); 94 95 switch(n) { 96 97 case 1: printf("请输入待转换的整数值: "); 98 99 scanf("%d",&m);100 101 printf("转换为二进制值为: ");102 103 Conversion(m);104 105 printf("\n");106 107 break;108 109 case 2: exit(0);110 111 default: printf("error\n");112 113 }114 115 }116 117 }

 

转载于:https://www.cnblogs.com/liuxun1031/p/10824261.html

你可能感兴趣的文章
ThinkPHP3.2.3下使用create函数更新数据安全使用方法
查看>>
IT鲨鱼:你的站为什么会被K?
查看>>
Q:按F12进行网络安装系统时,一直无法进入,提示加载失败?
查看>>
我的友情链接
查看>>
绘制几何图形:使用android.graphics类
查看>>
libdash编译中遇到的问题及解决方案
查看>>
基于SSH框架、Oracle数据库、easyui的分页显示
查看>>
我的友情链接
查看>>
解决AutoCAD acmgd.dll ARX命令中发现异常
查看>>
详解using backup controlfile
查看>>
我的友情链接
查看>>
手动编译安装LAMP
查看>>
安装archlinux
查看>>
考完研,回来继续弄了。
查看>>
poj2299 二分思想
查看>>
入门Android开发
查看>>
从零开始Git Hanging
查看>>
这个壳为什么这么难,这个软件难道就无法破!
查看>>
[转]passport.js学习笔记
查看>>
如何匹配一个不包含特定字段的字符串
查看>>