湛江网站建设运营方案,wordpress数据库批量替换网址,松江网站建设培训费用,涂料网站源码1.自己实现栈——基于数组
top 有的地方指向栈顶元素#xff0c;有的地方指向栈顶再往上的一个空单位#xff0c;根据题目要求设计。
*这里将 top 设置为栈顶再往上的一个空单位。
import java.util.Arrays;
class MystackT {private Object[] stack;// 指向栈顶…1.自己实现栈——基于数组
top 有的地方指向栈顶元素有的地方指向栈顶再往上的一个空单位根据题目要求设计。
*这里将 top 设置为栈顶再往上的一个空单位。
import java.util.Arrays;
class MystackT {private Object[] stack;// 指向栈顶上的空位private int top 0;Mystack() {stack new Object[8];}// 判断是否为空public boolean isEmpty() {return top 0;}// 返回栈顶元素public T peek() {T t null;if (top 0) {t (T)stack[top - 1];}return t;}// 压栈public void push(T t) {// 栈基于数组实现当数组填满时需要扩容// top1匹配stack.length代表数组的最后一位expandCapacity(top 1);stack[top] t;top;}// 出栈public T pop() {T t peek();if (top 0) {stack[top - 1] null;top--;}return t;}// 扩容public void expandCapacity(int size) {int len stack.length;// size大于len则本次push已经没有位置了需要扩容if (size len) {// 扩容 50%size size * 3 / 2 1;stack Arrays.copyOf(stack, size);}}
}2.自己实现栈——基于链表
class ListStackT {class NodeT {public T t;public Node next;}// 基于链表实现栈需要一直对头结点进行操作public NodeT head;// 构造函数初始化头指针ListStack() {head null;}// 压栈public void push(T t) {// 链表中不能放入空结点要提前判断if (t null) {throw new NullPointerException(参数不能为空);}if (head null) {head new NodeT();head.t t;head.next null;} else {NodeT temp head;head new Node();head.t t;head.next temp;}}// 出栈public T pop() {if (head null) {return null;}T t head.t;head head.next;return t;}// 返回栈顶元素public T peek() {if (head null) {return null;}T t head.t;return t;}// 判空public boolean isEmpty() {if (head null) {return true;} else {return false;}}
}如果对您有帮助请点赞关注支持我谢谢❤ 如有错误或者不足之处敬请指正❤ 个人主页星不易 ♥ 算法通关村专栏不易|算法通关村 ♥