今天我在这里给大家分享如何利用java动态数组实现栈,动态数组类我已经在上一篇文章中分享了,具体请访问java实现动态数组。
首先我们需要创建一个Stack的接口:定义几个基本的栈方法。在编写代码的过程中遵循先进后出的原则,以实现基本功能!!!
Stack:
package com.zp;
/**
* 定义栈的接口
* @author zhaopeng
* @create 2019-12-23 22:36
*/
public interface Stack<E>{
//获取数据个数
int getSize();
//判断是否为空
boolean isEmpty();
//入栈
void push(E e);
//出栈
E pop();
//查看栈顶元素的值
E peek();
}
具体的实现类如下:
ArrayStack:
package com.zp;
/**
* 利用动态数组实现栈
* @author zhaopeng
* @create 2019-12-23 22:38
*/
public class ArrayStack<E> implements Stack<E> {
Array<E> array;
public ArrayStack(int capacity){
array=new Array<E>(capacity);
}
public ArrayStack(){
array=new Array<E>();
}
public int getCapacity(){
return array.getCapacity();
}
@Override
public int getSize() {
return array.getSize();
}
@Override
public boolean isEmpty() {
return array.isEmpty();
}
@Override
public void push(E e) {
array.addLast(e);
}
@Override
public E pop() {
return array.removeLast();
}
@Override
public E peek() {
return array.getLast();
}
@Override
public String toString() {
StringBuilder stringBuilder=new StringBuilder();
stringBuilder.append("stack:[");
for (int i = 0; i <array.getSize() ; i++) {
stringBuilder.append(array.get(i));
if(i!=array.getSize()-1){
stringBuilder.append(",");
}
}
stringBuilder.append("]top");
return stringBuilder.toString();
}
}
文章到此结束,测试代码大家可自行书写,谢谢大家的阅读。如果有什么问题,欢迎大家评论区留言哦!!!
本文介绍了如何使用Java动态数组来实现栈。通过创建Stack接口并定义相关栈操作,遵循先进后出原则,具体实现类为ArrayStack。文章鼓励读者自行编写测试代码,并欢迎提问交流。

被折叠的 条评论
为什么被折叠?



