首页 > 代码库 > C++,利用链式栈实现括号匹配,界面友好,操作方便,运行流畅

C++,利用链式栈实现括号匹配,界面友好,操作方便,运行流畅

#include<iostream> #include<string> using namespace std; struct Node {  char ch;  Node* next;  Node(char c, Node* p){ ch = c; next = p; } }; void main() {  string str;  bool flag = true;  while (flag)  {   cout << "请输入算术表达式:" << endl;   getline(cin, str);   int len = str.length();   Node* top = NULL;   int i;   for (i = 0; i < len; i++)   {    if (str[i] == ( || str[i] == [ || str[i] == {)    {     top = new Node(str[i], top);    }    if (str[i] == ) || str[i] == ] || str[i] == })    {     if (top == NULL){ cout << "1.括号不匹配!" << endl; break; }     else     {      Node* pt = top;      top = top->next;      pt->next = NULL;      char item = pt->ch;      delete pt;      if ((item == (&&str[i] != )) || (item == [&&str[i] != ]) || (item == {&&str[i] != }))      {       cout << "2.括号不匹配!" << endl; break;      }     }    }   }   if (i == len)   {    if (top){ cout << "3.括号不匹配!" << endl; }    else cout << "括号完全匹配!" << endl;   }   if (top)   {    Node* ptr;    while (top)    {     ptr = top->next;     delete top;     top = ptr;    }   }   cout << "是否继续?继续请按1,退出请按0:" << endl;   int choice;   cin >> choice;   getchar();   if (choice == 0)flag = false;  } } 代码已经过测试,在VS2013上成功运行! 发此文有两大目的: 1.和大家交流经验,供需要的人参考。 2.在下菜鸟,代码中难免有不妥之处,恳求大神批评指正。您的批评就是在下提高的起点,对于您的批评,在下将不胜感激! 

 

C++,利用链式栈实现括号匹配,界面友好,操作方便,运行流畅