您的位置:首页 > 理论基础 > 数据结构算法

栈的基本应用-数制转换-数据结构

2015-09-16 11:00 429 查看
栈的基本操作-数制转换,其实就是余数部分先存起来,倒序输出

为了简单,就不考虑16之类的需要转换ABCDEF的,就简单的比如十进制转二进制之类的转化

简单例代码:

#include<stdio.h>
#include<string.h>
#include<malloc.h>

#define InitStackSize 1000

typedef struct SqStack
{
int *base,*top;
int stacksize;
}SqStack;

void InitSqSatck(SqStack &s)
{
s.base=s.top=(int*)malloc(InitStackSize*sizeof(int));
s.stacksize=InitStackSize;
}

void PushSqStack(SqStack &s,int e)
{
*s.top=e;
s.top++;
}

void Conversion(SqStack &s,int n,int b)
{
while(n)
{
PushSqStack(s,n%b);
n=n/b;
}
}

void DisplaySqStack(SqStack s)
{
while(s.top!=s.base)
{
s.top--;
printf("%d",*s.top);
}
printf("\n");
}

int main()
{
SqStack stack;
int n,b;
printf("Print the num you want to convert:\n");
while(scanf("%d",&n)!=EOF)
{
InitSqSatck(stack);
printf("Input the conversion num b:");
scanf("%d",&b);
Conversion(stack,n,b);
printf("After convert :\n");
DisplaySqStack(stack);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息