顺序栈的操作
//顺序栈的操作#define StackSize 100
typedef int DataType;
typedef struct{
DataType elem[StackSize];
int top; //栈顶指针在栈顶元素上
}SqStack; //顺序栈类型
//初始化空栈
void InitStack(SqStack &s)
{ s.top=-1; }
//入栈
void Push(SqStack &s,DataType x)
{ if(s.top ==StackSize-1){
printf("栈满\n"); return;
}
s.elem[++s.top]=x;
}
//出栈
void Pop(SqStack &s,DataType &x)
{if(s.top==-1)
printf("栈空")
x=s.elem[s.top--]
}
//取栈顶元素
DataType GetTop(SqStack s)
{ return s.elem[s.top];
}
//判栈空
int StackEmpty(SqStack s)
{ return s.top== -1;
}
void conversion( )//数制转换函数
{ int m,d,x;
SqStack s;
InitStack(s);
printf("请输入一个十进制的数:");
scanf("%d",&m);
printf("输入转换成几进制:");
scanf("%d",&d);
while(m!=0)
{ Push(s,m%d);
m=m/d;
}
while(!StackEmpty(s))
{ Pop(s,x);
printf("%d",x);
}