满意答案
昨天刚写的如果满意的话给个满星满意哦 #include
#include
using namespace std;
#define StackSize 20
typedef int StackData;//顺序栈定义
typedef struct{
StackData *data;
int top;
} SeqStack;
int SetNullStack(SeqStack &S)
{
S.data=NULL;
return 1;
} int InitStack(SeqStack &S)
{
S.data=(StackData *)malloc(StackSize*sizeof(StackData));
if(NULL==S.data)
{
cout<
return 0;
}
cout<
S.top=-1;
return 1;
} //这判断栈是否存在
int IsExist(SeqStack &S)
{
if(NULL==S.data)
{
cout<
return 1;
}
return 0;
} //判断栈是否空?空则返回1,否则返回0
int IsEmpty (SeqStack &S)
{
if(-1==S.top)
{
return 1;
}
return 0;
}//判断栈是否满?满则返回1,否则返回0
int IsFull(SeqStack &S)
{
if(StackSize-1==S.top)
{
cout<
return 1;
}
return 0;
}
//入栈,若栈不存在或栈满返回0, 否则新元素 elem 进栈并返回1
int Push (SeqStack &S, StackData elem)
{
if ( IsExist(S) || IsFull (S) ) return 0;
S.data[++S.top] = elem; //加入新元素
return 1;
}//出栈,若栈不存在或为空返回0, 否则栈顶元素退出到 elem 并返回1
int Pop (SeqStack &S, StackData &elem)
{
if ( IsEmpty(S) || IsExist(S)) return 0;
elem = S.data[S.top--];
return 1;
}
//返回栈顶元素,若栈不存在或栈空返回0, 否则栈顶元素读到 elem 并返回1
int Gettop (SeqStack &S, StackData &elem)
{
if ( IsEmpty(S) || IsExist(S)) return 0;
elem = S.data[S.top];
return 1;
}
int main()
{
SeqStack SS; //建立具体对象
SetNullStack(SS); //初始化对象之置不存在
InitStack(SS);
StackData elem;
int num,n;
char a[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
cout<
cin>>n;
cout<
cin>>num;
while(num)
{
Push(SS,num%n);
num/=n;
}
while(!IsEmpty(SS))
{
Pop(SS,n);
cout<
}
cout<
}
00分享举报