如何使用java代码实现栈和队列

Python016

如何使用java代码实现栈和队列,第1张

如何使用java代码实现栈和队列

import java.util.Scanner

import java.util.Stack

/**

* @author Owner

*

*/

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in)

int n= sc.nextInt()//3条测试数据数据

Stack<Character>stack = null

while(n!=0){

//从控制台读入一个测试字符串[]() [(])

String str = sc.next()

//如果该输入字符串为奇数,说明不匹配

if(str.length() % 2 == 1){

System.out.println("No")

}else{

//说明字符是偶数

stack = new Stack<Character>()

//遍历第一条测试字符串[]() [(])

for(int i=0i<str.length()i++){

if(stack.isEmpty()){

//如果栈是空的

stack.push(str.charAt(i))

}else if(stack.peek() == '[' &&str.charAt(i) == ']' || stack.peek() == '(' &&str.charAt(i) == ')'){

//说明此时栈中字符不是空的,并且符合,

stack.pop()

}else{

stack.push(str.charAt(i))

}

}

if(stack.isEmpty()){

//如果栈是空的,说明<a href="https://www.baidu.com/s?wd=%E6%8B%AC%E5%8F%B7&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3mhDvP10Ln19hrANbP1fk0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3ErHnLP1nsPHDznHTkn1fYPHnz" target="_blank" class="baidu-highlight">括号</a>匹配

System.out.println("Yes")

}else{

//说明栈不为空,<a href="https://www.baidu.com/s?wd=%E6%8B%AC%E5%8F%B7&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3mhDvP10Ln19hrANbP1fk0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3ErHnLP1nsPHDznHTkn1fYPHnz" target="_blank" class="baidu-highlight">括号</a>不匹配

System.out.println("No")

}

}

n--

}

}

}

import java.util.Stack

public class Translate {

//程序入口

public static void main(String[]args){

int n = Translate.translate(3467,8)

System.out.println("结果是:"+n)

}

public static int translate(int number, int base_num) {

//使用栈

Stack<Integer>stack = new Stack<Integer>()

while(number>0){

//压栈

stack.push(number % base_num)

number /= base_num

}

int n = stack.size()

int val=0

//依次出栈并合成结果(用我们熟悉的十进制表示,所以乘以10)

for(int i=0i<ni++){

val=val*10+stack.pop()

}

return val

}

}