1.进制转换
#include"SeqStack.h"
void Convert_8(int value)
{
SeqStack st;
InitStack(&st);
while (value != 0)
{
Push(&st,value % 8);
value /= 8;
}
while (!IsEmpty(&st))
{
int v;
GetTop(&st, &v);
Pop(&st);
printf("%d ", v);
}
printf("\n");
}
int main()
{
Convert_8(47183);
system("pause");
return 0;
}
2.括号匹配
//括号匹配
bool Cheak(const char* str)
{
SeqStack st;
InitStack(&st);
char ch;
while (*str != '\0')
{
if (*str == '[' || *str == '(' || *str == '<' || *str == '{')
{
Push(&st, *str);
}
else if (*str == ']')
{
GetTop(&st, &ch);
if (ch != '[')
{
return false;
}
Pop(&st);
}
else if (*str == '}')
{
GetTop(&st, &ch);
if (ch != '{')
{
return false;
}
Pop(&st);
}
else if (*str == '>')
{
GetTop(&st, &ch);
if (ch != '<')
{
return false;
}
Pop(&st);
}
else
{
GetTop(&st, &ch);
if (ch != '(')
{
return false;
}
Pop(&st);
}
++str;
}
return IsEmpty(&st);
}
3.行编辑程序
void LineEdit()
{
SeqStack st;
InitStack(&st);
char ch = getchar();
while (ch != '$')
{
while (ch != '$' && ch != '\n')
{
switch (ch)
{
case '#':
Pop(&st);
break;
case '@':
Clear(&st);
break;
default:
Push(&st, ch);
break;
}
ch = getchar();
}
Print(&st);
ch = getchar();
}
Destroy(&st);
}