堆栈和队列的存储特点
使用LinkedList集合实现堆栈和队列数据结构的存储方式!!
package com.test;
import java.util.LinkedList;
//使用 LinkedList 实现堆栈数据结构的存储方式
class StackList{
LinkedList list;
public StackList() {
list=new LinkedList();
}
//进栈方法
public void inStack(Object o) {
list.push(o); //将元素插入集合的开头
}
//出栈方法
public Object outStack() {
return list.pop(); //移除并放回集合的第一个元素
}
//获取元素的个数
public int size() {
return list.size();
}
@Override
public String toString() {
return list.toString();
}
}
//使用 LinkedList 实现队列数据结构的存储方式
class TeamList{
LinkedList list;
public TeamList() {
list=new LinkedList();
}
//进队
public void inTeam(Object o) {
list.offer(o); //添加元素到集合的末尾处
}
//出队
public Object outTeam() {
return list.poll(); //删除集合中第一个元素
}
//获取元素的个数
public int size() {
return list.size();
}
@Override
public String toString() {
return list.toString();
}
}
public class TestStackTeam {
public static void main(String[] args) {
StackList slist=new StackList();
slist.inStack("第一次加的水");
slist.inStack("第二次加的水");
slist.inStack("第三次加的水");
System.out.println(slist); //[第三次加水, 第二次加水, 第一次加水]
int size1=slist.size();
for (int i = 0; i < size1; i++) {
System.out.println("第"+(i+1)+"次喝水:"+slist.outStack());
}
// 第1次喝水:第三次加的水
// 第2次喝水:第二次加的水
// 第3次喝水:第一次加的水
TeamList tlist=new TeamList();
tlist.inTeam("第一个排队的人");
tlist.inTeam("第二个排队的人");
tlist.inTeam("第三个排队的人");
System.out.println(tlist); //[第一个排队的人, 第二个排队的人, 第三个排队的人]
int size2=tlist.size();
for (int i = 0; i < size2; i++) {
System.out.println("第"+(i+1)+"个出队的人:"+tlist.outTeam());
}
// 第1个出队的人:第一个排队的人
// 第2个出队的人:第二个排队的人
// 第3个出队的人:第三个排队的人
}
}