C语言 用栈实现进制转换_第1页
C语言 用栈实现进制转换_第2页
C语言 用栈实现进制转换_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言 用栈实现进制转换#include#include#include#include#define S_SIZE 100 /栈所占空间的大小#define STACKINCREAMENT 10 /扩充空间时一次扩充十个字节struct SqStackint *base; /栈底int *top; /栈顶int stacksize;/栈当前的存储空间*S;/主函数开始void main()/子函数声明void InitStack(S);/初始化空栈int StackEmpty(SqStack S);/判栈空void GetTop(SqStack S,int &e);/获得栈顶元素void p

2、ush(SqStack &S,int e);/进栈void pop(SqStack &S,int &e);/出栈void convert(SqStack &5,int N,int n);/十进制转N进制int i,num;unsigned n,N;/要转换的进制数及要转换的数SqStack s;InitStack(s);/初始化空栈printf(输入要转换的十进制数和要转换为的进制数:n);scanf(%d,%d,&N,&n);printf(%d转换为%d进制后为:n,N,n);convert(s,N,n);void InitStack(SqStack &S)S.base = (int *)m

3、alloc(S_SIZE*sizeof(int);S.stacksize=S_Size;S.top=S.base;/初始化空栈int StackEmpty(SqStack S)if(S.base=S.top)return 1;elsereturn 0;void GetTop(Stack S,int &e)/获得栈顶元素e = *(S.top-1);void push(SqStack &5,int e)/进栈if(S.top - S.base = S.stacksize)S.base = (int *)realloc(S.base,(S.stacksize+STACKINCREAMENT)*sizeof(int);S.top = S.base += S.stacksize;S.stacksize += STACKINCREAMENT;*(S.top)=e;S.top+;void pop(SqStack &S,int &e)/出栈if(S.base != S.top)S.top-;e=*S.top;void convert(SqStack &S,int N,int n)InitStack(S);dopush(S,N&n);N = N/n;while(N != 0);int i,e;while(!StackEmpty(S)pop(S,e);if(e 9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论