C++,利用链式栈实现括号匹配,界面友好,操作方便,运行流畅
2014-11-21 23:40
519 查看
#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++,利用链式栈实现括号匹配,界面友好,操作方便,运行流畅
- C++,利用链式栈实现括号匹配,界面友好,操作方便,运行流畅
- C++实现链式栈,运用模板,界面友好,操作方便,运行流畅
- C++实现链式栈,运用模板,界面友好,操作方便,运行流畅
- C++实现有向权图的基本操作,界面友好,操作方便,运行流畅
- C++实现顺序栈,运用模板,界面友好,操作方便,运行流畅
- C++实现树的基本操作,界面友好,操作方便,运行流畅,运用模板
- C++实现有向权图的基本操作,界面友好,操作方便,运行流畅
- C++实现有向权图的基本操作,界面友好,操作方便,运行流畅
- C++实现二叉树,运用模板,界面友好,操作方便 运行流畅
- C++实现树的基本操作,界面友好,操作方便,运行流畅,运用模板
- C++实现二叉树,运用模板,界面友好,操作方便 运行流畅
- 利用半透明对话框实现新浪微博android客户端首次运行时的提示界面
- 利用栈实现括号匹配算法!
- 利用半透明对话框实现新浪微博android客户端首次运行时的提示界面
- 利用C语言中后进先出的栈的概念实现括号匹配
- java版 利用栈实现括号匹配
- 利用半透明对话框实现新浪微博android客户端首次运行时的提示界面
- 利用半透明对话框实现新浪微博android客户端首次运行时的提示界面
- 利用半透明对话框实现android运行时的提示界面