棧的應用java語言實現

來源:互聯網
上載者:User

標籤:結合   對象   運算式   序列   out   ade   import   tin   com   

資料結構中的棧,在解決很多問題都有用處,比如括弧匹配,迷宮求解,運算式求值等等

java中有封裝好的類,可以直接調用:

 

Stack:

 

1-->public Stack()建立一個空堆棧

 

2-->public boolean empty()測試堆棧是否為空白;

 

3-->public E pop()移除堆棧頂部的對象,並作為此函數的值返回該對象。 

 

4-->public E push(E item)把項壓入堆棧頂部

 

5-->public E peek()查看堆棧頂部的對象,但不從堆棧中移除它。 

 

6-->public boolean empty()測試堆棧是否為空白

 

結合一道題目:

 

括弧配對問題

描述現在,有一行括弧序列,請你檢查這行括弧是否配對。輸入第一行輸入一個數N(0<N<=100),表示有N組測試資料。後面的N行輸入多組輸入資料,每組輸入資料都是一個字串S(S的長度小於10000,且S不是空串),測試資料群組數少於5組。資料保證S中只含有"[","]","(",")"四種字元輸出每組輸入資料的輸出佔一行,如果該字串中所含的括弧是配對的,則輸出Yes,如果不配對則輸出No範例輸入

3[(])(])([[]()])

範例輸出

NoNoYes

 

 

代碼:

Java代碼   
package com.baorant;import java.util.Scanner;import java.util.Stack;public class JavaDemo {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        int N = scanner.nextInt();        String s;        for (int i = 0; i < N; i++) {            s = scanner.next();            if (Main.isMatch(s)) {                System.out.println("Yes");            } else {                System.out.println("No");            }        }    }}class Main {    public static boolean isMatch(String s) {        Stack<Character> sk = new Stack<Character>();        for (int i = 0; i < s.length(); i++) {            if (s.charAt(i) == ‘(‘) {                sk.push(‘(‘);            }            if (s.charAt(i) == ‘)‘) {                if (!sk.isEmpty() && sk.pop() == ‘(‘)                    continue;                else                    return false;            }            if (s.charAt(i) == ‘[‘) {                sk.push(‘[‘);            }            if (s.charAt(i) == ‘]‘) {                if (!sk.isEmpty() && sk.pop() == ‘[‘)                    continue;                else                    return false;            }        }        if (sk.isEmpty())            return true;        else            return false;    }}

  

 

 

棧的應用java語言實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.