1.进制转换(如十六进制)
核心算法
//进制转换
void conversion(SqStack &S ,int n)
{
ElemType e;
cout<<"转换之前:"<<endl;
cout<<n<<endl;
while(n)
{
Push(S,n%16);
n/=16;
}
cout<<"转换成十六进制之后:"<<endl;
while(!StackEmpty(S))
{
Pop(S,e);
if(0<=e&&e<=9)
{
cout<<e;
}
else
{
cout<<static_cast<char>(e-10+'A');
}
}
cout<<endl;
}
2.括号匹配(算法)
Status Compare(SqStack &S)
{
ElemType e;
int flag=TRUE;
char ch;
while((ch=getchar())!='$'&&flag)//$为字符串输入的结束标志
{
switch(ch)
{
case '(':
case '[':
case'{':
Push(S,ch);
break;
case ')':
if(Pop(S,e)==ERROR||e!='(')
{
flag=FALSE;
}
break;
case ']':
if(Pop(S,e)==ERROR||e!='[')
{
flag=FALSE;
}
break;
case '}':
if(Pop(S,e)==ERROR||e!='{')
{
flag=FALSE;
}
break;
}
}
if(flag&&ch=='$'&&EmptyStack(S))
{
return TRUE;
}
else
{
return FALSE;
}
}