/* 进制转换,由十进制转换为8进制 */
void conversion()
{
SLinkList S;
SElemType e;
InitStack(&S);
int N;
scanf("%d",&N);
while (N) {
Push(S,N%8);
N /= 8;
}
/* 这时栈S刚好存放进制转换结果,把每一位按顺序pop出来就可以了 */
while (!StackEmpty(S)) {
Pop(S,&e);
printf("%d",e);
}
DestoryStack(&S);
}
/* 括号匹配检测 */
void matching()
{
SLinkList S;
SElemType e = 0;
InitStack(&S); /* 初始化栈空间 */
int c;
while ((c=getchar()) != '\n') {
if(c == '(' || c == '[')
Push(S,c);
if(c == ')' || c == ']') {
GetTop(S,&e); /* 获取栈顶元素 */
if(c == ')' && e == '(')
Pop(S,&e); /* 栈顶元素和当前元素匹配则弹出 */
else if(c == ']' && e == '[')
Pop(S,&e);
else { /* 不匹配,则直接退出 */
printf("not pip\n");
DestoryStack(&S);
return;
}
}
}
/* 最后检测栈是否空的 */
if (!StackEmpty(S)) {
printf("not pip\n");
}else {
printf("good\n");
}
DestoryStack(&S);
}
原文:https://www.cnblogs.com/wjundong/p/11624058.html