Java 基本数据结构 Stack Queue

Source

1.Stack详解(栈的逻辑结构:后进先出)

创建栈 <?> 属于泛型:

Stack<?> stack = new Stack<>();

操作栈:

push(Object o)向栈中存放数据(改变Stack,返回值为新添加的数据o)

pop()从栈中获取数据(改变Stack,返回值为获取到栈顶数据)

peek()查看栈中数据(不改变Stack,返回值为栈顶数据)

search(Object o)查找栈中数据(不改变Stack,返回值从栈顶到数据o的距离,默认栈顶为1)

empty()查看栈是否为空(不改变Stack,返回值当栈为空返回true)

        //创建栈 <Integer>
        Stack<Integer> numberStack = new Stack<>();
        //添加数据
        numberStack.push(123);
        System.out.println(numberStack);
        //查看栈顶数据
        System.out.println(numberStack.peek());
        System.out.println(numberStack);
        //获取栈顶数据
        System.out.println(numberStack.pop());
        System.out.println(numberStack);
        //判断栈是否为空
        System.out.println(numberStack.empty());

        //查找元素距离栈顶的距离
        numberStack.push(123);
        numberStack.push(456);
        System.out.println(numberStack.search(123));
        System.out.println(numberStack);

运行结果:

2.Queue(队列的逻辑结构:先进先出)

创建<?>属于泛型

Queue<Integer> queue = new ArrayDeque<>();

offer(Object o)向队列追加数据(改变Queue,返回值为成功与否)

poll()从队列头部获取数据(改变Queue,返回值为队头数据)

peek()查看队头数据(不改变Queue,返回值为队头数据)

isEmpty()判断队列是否为空(不改变Queue,返回值如果为空返回true)

        //创建队列
        Queue<Integer> numberQueue = new ArrayDeque<>();
        //添加数据
        numberQueue.offer(123);
        numberQueue.offer(456);
        System.out.println(numberQueue);
        //查看数据
        Integer y = numberQueue.peek();
        System.out.println(y);
        System.out.println(numberQueue);
        //拿取数据
        Integer x = numberQueue.poll();
        System.out.println(x);
        System.out.println(numberQueue);
        //判断是否为空
        System.out.println(numberQueue.isEmpty());

运行结果: