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
  • 相关阅读:
    #Leetcode# 451. Sort Characters By Frequency
    #Leetcode# 148. Sort List
    PAT 甲级 1138 Postorder Traversal
    PAT 甲级 1141 PAT Ranking of Institutions
    PAT 甲级 1142 Maximal Clique
    PAT 甲级 1146 Topological Order
    PAT 甲级 1143 Lowest Common Ancestor
    #Leetcode# 347. Top K Frequent Elements
    牛客寒假算法基础集训营4
    PAT 1147 Heaps
  • 原文地址:https://www.cnblogs.com/void0720/p/4778086.html
Copyright © 2011-2022 走看看