我是靠谱客的博主 羞涩咖啡,最近开发中收集的这篇文章主要介绍Java实现栈的两种方式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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实现栈的两种方式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部