概述
Java实现顺序栈
数组实现
public class Stack_<T> {
private Object[] stack;// 数组实现
private int size;
public Stack_() {
stack = new Object[20];// 初始长度20
}
//压栈
public void push(Object o) {
if (size >= stack.length) {
stack = Arrays.copyOf(stack,stack.length * 2);// 空间不足则扩容
}
stack[size++] = o;
}
// 返回栈顶元素
public T peek() {
if (size > 0)
return (T) stack[size - 1];
else return null;
}
// 弹出并返回栈顶元素
public T pop() {
if (size > 0)
return (T) stack[--size];
else return null;
}
// 判断栈是否为空
public boolean isEmpty() {
if (size == 0) {
return true;
} else return false;
}
// 返回栈长度
public int size() {
return this.size;
}
}
Java实现链式栈
内部类实现
public class Stack_plus<T> {
// 内部类,即节点
private class stack<T> {
T value;
stack next;
}
// 栈顶指针
private stack<T> head;
private int size;
public Stack_plus() {
head = null;
}
// 压栈
public void push(T t) {
if (t == null) {
throw new NullPointerException();
}
if (head == null) {
head = new stack<T>();
head.value = t;
head.next = null;
} else {
stack<T> temp = head;
head = new stack<T>();
head.value = t;
head.next = temp;
}
size++;
}
// 返回栈顶元素
public T peek() {
if (head != null)
return head.value;
else return null;
}
// 弹出并返回栈顶元素
public T pop() {
T temp = peek();
head = head.next;
size--;
return temp;
}
// 判断栈是否为空
public boolean isEmpty() {
if (head == null)
return true;
else
return false;
}
// 返回栈长度
public int size() {
return size;
}
}
不足之处望指正。
最后
以上就是羞涩咖啡为你收集整理的Java实现栈的两种方式的全部内容,希望文章能够帮你解决Java实现栈的两种方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复