zoukankan      html  css  js  c++  java
  • 自定义栈

     1 public class Demo {
     2     public static void main(String[] args) {
     3         MyStack stack = new MyStack();
     4         stack.push("123");
     5         stack.push("abc");
     6         stack.push("hello");
     7         stack.push("wwww");
     8         System.out.println("返回栈的长度为:" + stack.getSize());
     9         System.out.println("判断栈是否为空:" + stack.isEmpty());
    10         System.out.println("判断栈是否为满:" + stack.isFull());
    11         System.out.println("返回栈中元素的个数为:" + stack.getElementCount());
    12         System.out.println("返回栈顶元素为:" + stack.peek());
    13         System.out.println("返回栈中元素的个数为:" + stack.getElementCount());
    14         System.out.println("出栈的元素为:" + stack.pop());
    15         System.out.println("出栈的元素为:" + stack.pop());
    16         System.out.println("返回栈中元素的个数为:" + stack.getElementCount());
    17         System.out.println("出栈的元素为:" + stack.pop());
    18         System.out.println("出栈的元素为:" + stack.pop());
    19         System.out.println("返回栈中元素的个数为:" + stack.getElementCount());
    20         System.out.println("判断栈是否为空:" + stack.isEmpty());
    21         System.out.println("判断栈是否为满:" + stack.isFull());
    22         System.out.println("返回栈的长度为:" + stack.getSize());
    23         System.out.println("返回栈中元素的个数为:" + stack.getElementCount());
    24     }
    25 }
    26 // 自定义栈
    27 class MyStack {
    28     // 利用数组来完成元素的存放
    29     String[] str = null;
    30     // 栈顶指针
    31     private int top;
    32     // 栈中元素的个数
    33     private int count;
    34     public MyStack() {
    35         this(10);
    36     }
    37     public MyStack(int size) {
    38         // 实例化String[]来存放元素
    39         str = new String[size];
    40         // 栈顶指针为-1
    41         top = -1;
    42         // 栈中元素初始为0个
    43         count = 0;
    44     }
    45     // 返回栈中元素的个数
    46     public int getElementCount() {
    47         return count;
    48     }
    49     // 返回栈长度
    50     public int getSize() {
    51         return str.length;
    52     }
    53     // 判断栈是否为满
    54     public boolean isFull() {
    55         return top == (str.length - 1);
    56     }
    57     // 判断栈是否为空
    58     public boolean isEmpty() {
    59         return top == -1;
    60     }
    61     // 入栈操作
    62     public void push(String data) {
    63         if (isFull()) {
    64             throw new RuntimeException("栈已满!");
    65         } else {
    66             str[++top] = data;
    67             count++;
    68         }
    69     }
    70     // 出栈操作
    71     public String pop() {
    72         if (isEmpty()) {
    73             throw new RuntimeException("栈是空的!");
    74         } else {
    75             count--;
    76             return str[top--];
    77         }
    78     }
    79     // 返回栈顶元素
    80     public String peek() {
    81         if (isEmpty()) {
    82             throw new RuntimeException("栈是空的!");
    83         } else {
    84             return str[top];
    85         }
    86     }
    87 }

      执行结果:

     1 返回栈的长度为:10
     2 判断栈是否为空:false
     3 判断栈是否为满:false
     4 返回栈中元素的个数为:4
     5 返回栈顶元素为:wwww
     6 返回栈中元素的个数为:4
     7 出栈的元素为:wwww
     8 出栈的元素为:hello
     9 返回栈中元素的个数为:2
    10 出栈的元素为:abc
    11 出栈的元素为:123
    12 返回栈中元素的个数为:0
    13 判断栈是否为空:true
    14 判断栈是否为满:false
    15 返回栈的长度为:10
    16 返回栈中元素的个数为:0
  • 相关阅读:
    枚举类
    泛型数组列表
    方法参数
    给一个数字和列表,判断列表中是否存在两个元素之和等于这个数字,并好之两个数的坐标
    selenium.common.exceptions.ElementNotVisibleException: Message: element not interactable报错
    python-selenium提供的execute_script调用js操作
    xlrd读取excel数据封装
    0531-练习题 os.system
    0528 文件操作习题
    05/17
  • 原文地址:https://www.cnblogs.com/void0720/p/4778086.html
Copyright © 2011-2022 走看看