12、栈、队列和字符串的基本操作(Java数据结构)

栈、队列和字符串的基本操作

使用栈与队列逐个处理字符串中的每个字符 将输入的字符串的字符依次入栈,然后输出栈中元素个数与栈顶元素,以空格分隔。 然后将栈中元素依次出栈并输出,出栈时将不等于指定字符的元素依次入队列。 输出队列元素个数,队头元素元素,以空格分隔。 最后输出队列中所有元素。 要求使用Java提供的Stack类、Queue接口和LinkedList类或ArrayList类。

输入格式:
输入一个个字符串和输入一个字符。

输出格式:
第一行输出栈中元素个数,栈顶元素(以空格分隔); 第二行输出栈中所有元素; 第三行输出队列中元素个数,队头元素(以空格分隔); 第四行输出队列中所有元素。

输入样例:
ThisIsATest s

输出样例:
11 t
tseTAsIsihT
8 t
teTAIihT

代码如下:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String s=input.next();
        char ch=input.next().charAt(0);
        char[] c=s.toCharArray();
        Stack<Character> stack=new Stack<>();
        Deque<Character> deque=new LinkedList<>();
        for (int i=0;i<c.length;i++){
            stack.push(c[i]);
            if (c[i]!=ch){
                deque.addFirst(c[i]);
            }
        }
        System.out.println(stack.size()+" "+stack.peek());
        while (!stack.isEmpty()){
            System.out.print(stack.pop());
        }
        System.out.println();
        System.out.println(deque.size()+" "+deque.peek());
        while (!deque.isEmpty()) {
            System.out.print(deque.pop());
        }
    }
}


你可能感兴趣的:(java数据结构,数据结构)