标签:int bsp 图片 链表 需要 http 技术 ext nbsp
相关概念
我们来实现自己的栈,首先用数组来实现
package com.differ.jackyun.examples.javabasisc.datastructure; import org.junit.Test; import java.util.Arrays; /** * 实现自己的栈 * * @author hup * @data 2020-06-14 8:54 **/ public class MyStackWithArr<E> { /** * 数组 */ public Object[] arrStack; /** * 数组内元素数量 */ public int count; public MyStackWithArr() { arrStack = new Object[10]; } /** * 入栈 * * @param item */ public void push(E item) { //判断空间大小情况和扩容 this.relize(count + 1); //元素放入数组 arrStack[count] = item; count++; } /** * 判数组长度是否够用,自动扩容 * * @param maxCount 需要存储的总量 */ private void relize(int maxCount) { if (maxCount <= this.count) { return; } //扩容 10 arrStack = Arrays.copyOf(arrStack, 10); } /** * 出栈 * * @return */ public E pop() { E item = (E) arrStack[count - 1]; arrStack[count - 1] = null; count--; return item; } /** * 取栈顶数据 * * @return */ public E peek() { E item = (E) arrStack[count - 1]; return item; } }
然后我们测试下好不好用
@Test public void test() { MyStackWithArr mystack = new MyStackWithArr(); //入栈3个元素 mystack.push(new Node(1)); mystack.push(new Node(2)); mystack.push(new Node(3)); //出栈3个元素 System.out.println(mystack.pop()); System.out.println(mystack.pop()); System.out.println(mystack.pop()); }
输出结果:
Node{next=null, data=3} Node{next=null, data=2} Node{next=null, data=1}
可以看到,是后入先出的输出,栈生效了
用单向链表实现自己的栈
标签:int bsp 图片 链表 需要 http 技术 ext nbsp
原文地址:https://www.cnblogs.com/hup666/p/13123859.html