zoukankan      html  css  js  c++  java
  • 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.在下菜鸟,代码中难免有不妥之处,恳求大神批评指正。您的批评就是在下提高的起点,对于您的批评,在下将不胜感激! 
  • 相关阅读:
    【2020-02-13】内容变了,但计划本身没变
    【2020-02-12】新的工作计划方式
    【2020-02-10】煮饭那点家常
    【2020-02-10】生活需要不断地相互协调
    nacicat premium 快捷键
    python 爬虫之 正则的一些小例子
    Python爬虫之Cookie和Session
    Python爬虫之关于登录那些事
    爬虫常用库之pyquery 库
    day 39 jq 学习入门2
  • 原文地址:https://www.cnblogs.com/zpcdbky/p/4114476.html
Copyright © 2011-2022 走看看