#include<stdio.h>
#include<malloc.h>
#define maxlen 100
typedef struct
{
int data[maxlen];//建一个数组存储栈中元素
int top;
} SeqStack;
SeqStack *SetStack() //建空栈
{
SeqStack *S;
S=(SeqStack*)malloc(sizeof(SeqStack));
S->top=-1;
return S;
}
int StackEmpty(SeqStack *S) //判栈空
{
if(S->top>=0)
return 0; //栈空返回1
else
return 1;
}
/*int StackFull(SeqStack *S) //判栈满
{
if(S->top<maxlen-1&&S->top>=0)
return 0;
else
return 1; //栈满返回1
}*/
void Push(SeqStack *S,int x) //入栈
{
if(S->top<maxlen&&S->top>=-1)
{
S->top++;
S->data[S->top]=x;
}
else
printf("error");
}
int Pop(SeqStack *S)
{
if(S->top>=0)
{
int x;
x=S->data[S->top];
S->top--;
return x;
}
}
void Conversion(int n,int d)
{
SeqStack *S=SetStack();
int x;
while(n!=0)
{
Push(S,n%d);
n/=d;
}
while(!StackEmpty(S))
{
x=Pop(S);
printf("%4d",x);
}
}
int main()
{
int n,d;
printf("请输入需要转换的数字");
scanf("%d",&n);
printf("请输入要转换的进制:");
scanf("%d",&d);
printf("%d转换为%d进制后的结果是:",n,d);
Conversion(n,d);
return 0;
}
数据结构出栈入栈1——9进制转换
最新推荐文章于 2022-07-21 20:03:59 发布