简单的单链表实现栈
判断括号是否配对完整.
class Node<T> { public T Item { get; set; } public Node<T> Next { get; set; } }
class Stack3<T> { private Node<T> _first; private int _n; public int Count() { return _n; } public bool IsEmply() { return _first == null; } public void Push(T t) { Node<T> old = _first; _first = new Node<T>(){Item = t, Next = old}; _n++; } public T Pop() { T t = _first.Item; _first = _first.Next; _n--; return t; } }
class Program { private static Stack3<char> f = new Stack3<char>(); static void Main(string[] args) { string str = "({[]}{}())"; if (str.Length % 2 != 0) { Console.WriteLine("不对等"); return; } for (int i = 0; i < str.Length; i++) { if (str[i] == '(' || str[i] == '{' || str[i] == '[') { f.Push(str[i]); } else { if (!IsA(str[i])) { Console.WriteLine("不对等"); return; } } } Console.WriteLine("对等"); } private static bool IsA(char ca) { bool flag = false; switch (ca) { case ')': flag = f.Pop() == '('; break; case '}': flag = f.Pop() == '{'; break; case ']': flag = f.Pop() == '['; break; default: break; } return flag; } }
posted on 2012-11-19 21:24 ZoeToString 阅读(206) 评论(0) 编辑 收藏 举报