ACM山东工商 栈和队列算法练习

#include <stdio.h>
#include <stdlib.h>
#define SIZE   10
typedef struct hold
{
 char sign[SIZE];
 int top;
} HOLD;
int main()
{
 int cycle;
 int logn = 0;
 HOLD example;
 example.top = 0;
 char str[100];
 scanf("%s",str);
 for(cycle = 0;cycle < strlen(str);cycle++)
 { 
  switch(str[cycle])
  {
   case '(':
   example.sign[example.top] = str[cycle];
   example.top++;
   break;
   case '[':
   example.sign[example.top] = str[cycle];
   example.top++;
   break;
   case '{':
   example.sign[example.top] = str[cycle];
   example.top++;
   break;
  }
  if(str[cycle] == ')'&&example.sign[example.top-1] == '(')
  {
   //example.sign[example.top] = NULL;
   example.top--;
  }
  if(str[cycle] == ']'&&example.sign[example.top-1] == '[')
  {
   //example.sign[example.top] = NULL;
   
   example.top--;
  }
  if(str[cycle] == '}'&&example.sign[example.top-1] == '{')
  {
   //example.sign[example.top] = NULL;
   
   example.top--;
  }
  //printf("%d ",example.top);
 }
 if(example.top > 1)
 {
  example.top = 0;
  printf("%d",example.top);
 }
 else
 {
  example.top = 1;
  printf("%d",example.top);
 }
 //printf("%s",example.sign);
 return 0;
 
}
 
原文地址:https://www.cnblogs.com/jiang-bei/p/9732383.html