SDUT - 2131 数据结构实验之栈与队列一:进制转换
程序员文章站
2024-01-28 18:15:22
...
Code
#include <stdio.h>
#include <malloc.h>
#define MAX 100000
typedef struct
{
int *base;
int *top;
} stack;
void Init(stack *S)
{
S->base = (int *)malloc(MAX * sizeof(int));
S->top = S->base;
}
void Push(stack *S, int e)
{
*(S->top++) = e;
}
void Pop(stack *S)
{
S->top--;
}
int Gettop(stack *S)
{
return *(S->top-1);
}
int Empty(stack *S)
{
if(S->base == S->top)
return 1;
else
return 0;
}
void Transfer(stack *S,int n,int R,int flag)
{
if(n == 0)
flag = 1;
while(n != 0)
{
Push(S,n%R);
n /= R;
}
if(flag)
printf("0");
while(!Empty(S))
{
printf("%d",Gettop(S));
Pop(S);
}
}
int main()
{
int n,R,flag = 0;
stack S;
Init(&S);
scanf("%d %d",&n,&R);
Transfer(&S,n,R,flag);
return 0;
}
反思:栈的练习。栈(stack)是一种先进后出(FILO)的结构,将整数反复取模压入栈,最后出栈就得到了进制转换后的数。
进制转换知识:有时间补上
上一篇: CSS中的浮动和清除浮动介绍
下一篇: 栈和递归2--栈的应用