zoukankan      html  css  js  c++  java
  • 数组实现栈

    public class StackX {
        private int maxSize;
        private long[] stackArray;
        private int top;
        
        public StackX(int max){
            stackArray = new long[max];
            top = -1;//空栈
        }
        
        public void push(long j){
            stackArray[++top] = j;
        }
        
        public long pop(){
            return stackArray[top--];
        }
        
        public long peek(){
            return stackArray[top];
        }
        
        public boolean isEmpty(){
            return top == -1;
        }
        
        public boolean isFull(){
            return top == (maxSize -1);
        }
        
        public static void main(String[] args) {
            //创建栈
            StackX stack = new StackX(10);
            //入栈
            stack.push(10);
            stack.push(20);
            stack.push(30);
            stack.push(40);
            stack.push(50);
            
            //查看栈
            System.out.println("查看栈:"+stack.peek());
            
            //出栈
            while(!stack.isEmpty()){
                System.out.println("出栈"+stack.pop());
            }
            
        }
    
    }

    栈、队列

      受限访问:

        在数组中若知道数据项的下标,便立即可以反问该数据项;或者通过顺序搜索数据项,访问到数组中的各项数据。而栈、队列等数据结构,访问是受限的,即在特定时刻只有一个数据项可以被读取或者删除(除非作弊)。

        这些结构接口的设计增强了这种受限访问。访问其他数据项(理论上)是不允许的。

      更加抽象:

        栈、队列和优先级队列是比数组和其他数据存储结构更为抽象的结构。主要通过接口对栈、队列和优先级队列进行定义,这些接口表明通过他们可以完成的操作,而他们的主要实现机制对用户来说是不可见的。

        例如,栈的主要机制可以用数组来实现,但也可以通过链表来实现。优先级队列内部实现可以用数组或一种特别的树——堆来实现(用一种数据结构来实现另一种数据结构)。


      栈只允许访问一个数据项:即最后插入的的数据项。移除这个数据项后才能访问倒数第二个插入的数据项,一次类推。栈也是那些相当复杂的数据结构算法的遍历工具

      

  • 相关阅读:
    java使用io流读取windows文件乱码问题
    java的io字符流关闭和刷新.flush();
    java使用io流实现图片复制
    java8新特性-函数式接口详细讲解及案例
    java8的lambda过滤list遍历集合,排序
    java复制对象,复制对象属性,只可复制两个对象想同的属性名。也可自定义只复制需要的属性。
    详讲KMP算法
    java栈和队列
    请求中文乱码解决
    idea创建servlet步骤
  • 原文地址:https://www.cnblogs.com/yony/p/2874660.html
Copyright © 2011-2022 走看看