括号匹配(stack)

const int MaxLength=100;
void PrintMatchedPairs(char *expr)
{
 Stack<int> s(MaxLength);
 int j, length=strlen(expr);
 for(int i=1; i<=length; i++)
 {
  if(expr[i-1]=='(')
   s.Add(i);
  else if(expr[i-1]==')')
  {
   s.Delete(j);
   cout<<j<<' '<<i<<endl;
  }
 }
 // 堆栈中所剩下的(都是未匹配的
 while(!s.IsEmpty())
 {
  s.Delete(j);
  cout<<"No match for left parenthesis at" <<j<<endl;
 }
}

Ref:<<数据结构,算法与应用>>P169~170

阅读更多
文章标签: 数据结构 算法
个人分类: 数据结构与算法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

括号匹配(stack)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭