数据结构c 进制转换问题(栈)
来源:互联网 发布:系统解剖学网络公开课 编辑:程序博客网 时间:2024/06/05 14:46
用栈来实现进制进制转换 应使用辗转相除法 注意栈的操作 #include <stdio.h> #include <stdlib.h> #define S_SIZE 100 #define STACKINCREMENT 10 typedef struct SqStack{ int *base; int top; int stacksize; }SqStack; //初始化空栈 void InitStack(SqStack &S) { S.base=(int *)malloc(S_SIZE*sizeof(int)); S.stacksize=S_SIZE; S.top=-1; } //判断空栈 int StackEmpty(SqStack &S) { if(S.top==-1) return 1; else return 0; } //判断栈满 int StackFull(SqStack &S) { if(S.top==S.stacksize) return 1; else return 0; } //进栈 void push(SqStack &S,int x) { if(StackFull(S)) printf("栈满\n"); S.base[++S.top]=x; } //出栈 int pop(SqStack &S) { int x; if(StackEmpty(S)) printf("栈空\n"); x=S.base[S.top]; S.top--; return x; } //进制转化函数 void convert(SqStack &S,int N,int n) { int i,x; do { push(S,N%n); N/=n; } while (N!=0); while(!StackEmpty(S)) { x=pop(S); if(x>9) { if(x==10) x='A'; if(x==11) x='B'; if(x==12) x='C'; if(x==13) x='D'; if(x==14) x='E'; if(x==15) x='F'; //16 进制的转换 printf("%c",x); } else printf("%d",x); } printf("\n"); } int main() { int n,N;//要转换成的进制数和要转换的数 SqStack s; scanf("%d%d",&n,&N) ; InitStack(s); printf("%d转换为%d进制后为:\n",n,N); convert(s,n,N); return 0; } 这样就可以啦..........
阅读全文
1 0
- 数据结构c 进制转换问题(栈)
- 数据结构-栈篇----应用:进制转换(c语言版)
- 数据结构C语言版进制转换
- 进制转换问题(c++)
- 数据结构(C语言版)栈的实现进制的转换
- C语言数据结构之栈与队列的应用(1)进制转换
- 数据结构 栈的应用任意进制转换(c语言实现)
- 数据结构——栈——进制转换(c++)
- 进制转换 (数据结构 + 栈)
- 数据结构-栈--进制转换
- 学习笔记------数据结构(C语言版)进制转换
- 【数据结构】栈的应用--数制转换(c++)
- c语言版数据结构(奇迹冬瓜)-栈实战(2)整数进制转换<10进制到2,8,16进制>
- 数据结构-C语言 栈的简单应用——10进制以内的数制转换
- 数据结构 使用递归任意进制转换(c语言实现)
- 数据结构(C++) 栈-迷宫问题
- 用链栈解决正整数进制转换问题(C语言)
- 【转载】 问题 C: 进制转换
- lisp基本语法——(一)
- ClassPath
- java:函数--返回多个值
- 大范围内高效查找回文质数(回文数猜想)
- chocolate
- 数据结构c 进制转换问题(栈)
- PowerDesigner逆向工程到Mysql操作步骤
- 机器学习:吴恩达官方笔记
- JVM之垃圾收集器
- docker命令概览
- 线程中的join
- 第7周实践项目2 队列的链式存储结构及其基本运算的实现
- python对json的操作及实例解析
- python爬虫之GET请求