`
reallyafei
  • 浏览: 98839 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java堆栈应用之括号匹配

    博客分类:
  • Java
阅读更多
java堆栈应用之括号匹配(jdk1.6):
package tf;

import java.util.ArrayDeque;
import java.util.Deque;

public class StackTest {

	public static void main(String[] args) {
		Deque<Character> stack = new ArrayDeque<Character>();
		String str = "ab12+[b2(eef)w-45tyf[lk6{zxc29hg}]]";
		boolean flag = true;
		char ch;
		for(int i = 0; i < str.length(); i++) {
			ch = str.charAt(i);
			if(ch == '(' || ch == '[' || ch == '{') {
				stack.offerFirst(ch);
			}
			
			else if(ch == ')') {
				if(stack.peekFirst() != null && stack.peekFirst() == '(') {
					stack.pollFirst();
				}
				else {
					flag = false;
					break;
				}
			}
			else if(ch == ']') {
				if(stack.peekFirst() != null && stack.peekFirst() == '[') {
					stack.pollFirst();
				}
				else {
					flag = false;
					break;
				}
			}
			else if(ch == '}') {
				if(stack.peekFirst() != null && stack.peekFirst() == '{') {
					stack.pollFirst();
				}
				else {
					flag = false;
					break;
				}
			}			
		}
		
		if(flag) {
			flag = stack.isEmpty();
		}
		System.out.println("是否匹配:" + flag);
	}
}

分享到:
评论

相关推荐

    数据结构与算法——堆栈实现括号匹配

    堆栈(Stack)作为其中一种简单但实用的数据结构,广泛应用于括号匹配问题,例如在编译器、解释器和文本编辑器中。在这个实验中,我们将通过Java实现堆栈来解决括号匹配的问题。 首先,我们需要理解什么是括号匹配...

    数据结构-堆栈及其应用-Java代码实现

    本主题主要关注Java语言实现的堆栈及其在实际问题中的应用,特别是括号匹配和后缀表达式计算。 首先,我们来理解堆栈的基本操作。在Java中,可以使用ArrayList或LinkedList等集合类来实现堆栈。最基本的堆栈操作...

    java-Editor.zip_java editor_括号匹配 的JAVA 实现

    本项目"java-Editor.zip"是一个基于Java实现的简易IDE,模仿了流行的notepad2编辑器,专注于核心的编辑功能,如代码高亮、括号匹配、书签管理、撤销/重做以及文本搜索。 首先,我们要讨论的是代码染色(Code ...

    用 Java 实现堆栈

    除了基本操作外,堆栈在许多算法和编程问题中都有应用,例如深度优先搜索(DFS),回溯法,括号匹配,表达式求值等。在这些应用场景中,堆栈能够帮助我们有效地管理状态和控制流程。 总之,Java提供了多种实现堆栈...

    paran_bal_stack:Java中用堆栈实现的括号平衡检查器

    `isValidPair`方法用于验证当前闭合括号是否与栈顶的开启括号匹配。在主函数中,我们用两个测试字符串进行演示,一个平衡,一个不平衡,结果会分别输出`true`和`false`。 这个`paran_bal_stack`项目可能是这样的一...

    数据结构堆栈

    这样做可能是为了处理字符串中的运算表达式,例如解析括号匹配、计算表达式值等,因为这些任务通常涉及到运算符的堆栈操作。 在解析表达式时,堆栈通常用于存储运算符。例如,当遇到左括号时,将其压入栈;遇到右...

    数据结构算法

    数据结构和算法是计算机科学的...总之,利用堆栈进行括号匹配是一种常见的算法应用,它体现了数据结构与算法在实际问题解决中的价值。理解并掌握这一方法,对于提升编程能力和解决类似问题的能力有着积极的推动作用。

    运用堆栈实现表达式求值

    这里我们将深入探讨如何运用堆栈数据结构来实现表达式求值,特别是针对单字符的计算、括号匹配以及处理运算符的优先级。 首先,我们要理解堆栈的基本操作。堆栈是一种“后进先出”(LIFO)的数据结构,它的主要操作...

    java开发者必看的数据结构

    - **括号匹配**:在编译器或解释器中,检查程序中的括号是否匹配,可以使用堆栈来辅助判断。 3. **堆栈与算法**: - **深度优先搜索(DFS)**:在图论和树结构中,深度优先搜索通常借助堆栈来实现,沿着树的深度...

    用堆栈实现表达式的解析

    本文将深入探讨如何使用堆栈来解析数学表达式,以及编译原理在此过程中的应用。 首先,我们需要了解数学表达式的基本结构。常见的数学表达式包含操作数(如数字)和运算符(如加、减、乘、除)。在传统的中缀表达式...

    Java综合程序设计——计算器(实现运算符优先级的四则混合运算)

    7. **错误处理**:在实际开发中,需要考虑用户可能输入的非法表达式,如缺少运算符、缺少操作数、未匹配的括号等,需要编写相应的错误检测和处理机制。 8. **用户界面**:为了让用户能够方便地输入和查看计算结果,...

    java实现的计算器

    遇到右括号时,会弹出堆栈顶的元素直到找到匹配的左括号,这样可以确保正确处理嵌套的括号表达式。同时,运算符如加、减、乘、除也可以根据运算规则被压入堆栈,等待与数字进行运算。 在Java中,我们可以使用`java....

    数据结构 C C++ JAVA

    对于堆栈,可以学习如何实现push(入栈)、pop(出栈)、peek(查看栈顶元素)等基本操作,并了解它们在实际问题中的应用,比如括号匹配、深度优先搜索等。 总的来说,掌握C、C++和Java的数据结构知识,能够为解决...

    堆栈和队列结果计算,存储

    - 在实际编程中,堆栈可用于解决诸如括号匹配问题、子程序调用等问题。 #### 五、结论 通过对给定文件的分析,我们可以看到堆栈操作的具体实现及其工作原理。堆栈作为一种重要的数据结构,在计算机科学中扮演着不...

    队列 堆 栈 堆栈的区别

    - **应用场景:**递归调用、表达式求值、括号匹配等。 #### 堆 在计算机科学中,“堆”这个词有两个含义: 1. **作为数据结构的堆:**一种特殊的树形数据结构,通常是一个二叉堆。它满足以下性质: - **父节点的...

    LeetCode上经典面试问题Java语言实现

    堆栈常用于回溯、括号匹配、深度优先搜索等问题,如有效括号、最长回文子串等。 4. **队列**:队列遵循“先进先出”(FIFO)原则。Java中有ArrayDeque和LinkedList可以实现队列。常见的队列问题有银行排队、滑动...

    数据结构作业栈的应用

    在这个“数据结构作业栈的应用”中,我们主要探讨了栈在三个具体场景下的应用:字符串逆序输出、括号匹配以及数学表达式求值。 1. **字符串逆序输出**: 在这个部分,我们使用栈来实现一个字符串的逆序。栈的基本...

    数据结构—Java语言描述(朱战立版)课件及源代码

    它们在程序设计中广泛应用,如函数调用、括号匹配和任务调度等。 4. **树结构**:二叉树、平衡树(如AVL树和红黑树)以及查找树(如二分查找树)是数据结构中的重要部分。它们用于高效地进行查找、插入和删除操作。...

    数据结构与算法(JAVA语言版解密)

    此外,还探索了栈和队列的应用,如进制转换、括号匹配检测和迷宫求解。 递归章节探讨了递归的概念、递归的实现与堆栈的关系,基于归纳的递归方法,以及递推关系的求解,并介绍了分治法的基本思想及其应用示例。 树...

Global site tag (gtag.js) - Google Analytics