list实现栈以及队列操作
2024-09-03 03:13:20
1.堆栈stack操作:尾进 尾出 或者叫先进后出
//1借助LinkedList 类中的方法实现栈
public class MyStack {
private LinkedList<Object> li=new LinkedList<Object>(); //1构造方法
public MyStack(){ } //2出栈
public Object pop(){
if(isEmpty()){
throw new EmptyStackException();
}
return li.removeFirst();
} //3进栈
public void push(Object obj){ //注意o不要0的区别,不要写成0了
li.addFirst(obj);
} //4清空
public void clear() {
li.clear();
}
//5判断是否为空
public boolean isEmpty(){
return li.isEmpty();
} //6 将对象转换成字符串
public String toString(){
return li.toString();
} //7返回栈口元素
public Object peek(){
if(isEmpty()){
throw new EmptyStackException();
}
return li.peekFirst(); //注意,这里与队列的区别 } public static void main(String[] args) {
MyStack stack=new MyStack();
//进栈
stack.push("a");
stack.push("b");
stack.push("c"); //出栈
System.out.println(stack.pop()); //输出 c //返回栈口元素
System.out.println(stack.peek()); //输出 b }
}
2.队列queue操作:尾进 首出 或者叫先进先出,后进后出
//借助LinkedList 类中的方法实现队列
public class MyQueue {
private LinkedList<Object> li = new LinkedList<Object>(); // 1构造方法
public MyQueue() { } // 2出列
public Object get() {
if (isEmpty()) {
throw new EmptyStackException();
}
return li.removeFirst();
} // 3进列
public void put(Object obj) {
li.addLast(obj);
} // 4清空
public void clear() {
li.clear();
} // 5 返回队列首元素(不删除)
public Object getTop() {
if (isEmpty()) {
throw new EmptyStackException();
}
return li.peekLast(); //注意,这里是peeklaste而不是first
} // 6将对象转换成字符串
public String toString() {
return li.toString();
} // 7判断队列是否为空
public boolean isEmpty() {
return li.isEmpty();
} public static void main(String[] args) {
MyQueue mq = new MyQueue();
// 进列
mq.put("a");
mq.put("b");
mq.put("c"); // 出列
System.out.println(mq.get()); //输出a // 返回对首元素
System.out.println(mq.getTop()); //输出b }
最新文章
- MySQL碎碎念
- 【转载】--仅用 []()+! 就足以实现几乎任意Javascript代码
- iOS 学习 - 22 异步解析 JSON,使用 FMDB 存储,TableView 显示
- 深入理解JQuery插件开发
- [Android Pro] CountDownTimer倒计时
- OSG模型简单控制
- 使用DirectWrite测量Direct2D文字大小
- Microsoft Dynamics CRM 前瑞开发
- [SQL]合并字符串
- 移动端页面使用rem来做适配
- 一些提高开发效率的 Category
- ——————————JavaScript中,对String字符串的一些操作——————————
- Unity2017灯光烘焙知识点
- scrapy:get cookie from response
- Video 对象方法 canPlayType()
- Avatar
- 【Linux】shell编程案例
- 2017年软件工程第十二次作业-PSP总结报告
- c# 判断一个数是不是质数或者求一个数的公约数的算法
- Stochastic Multiple Choice Learning for Training Diverse Deep Ensembles
热门文章
- java:Echarts,POI
- Debian系统软件安装
- axios在Vue中的简单应用(一)
- 【AMAD】newspaper -- 爬取/提取新闻网页中的文本,元数据
- Django学习笔记(二)URL编写规则
- 解析之Apache解析
- 建立EF访问数据库架构时,出现One or more validation errors were detected during model generation
- 用vs2008打开sln项目总是说没有对应的,打不开vs2008的工程文件提示不支持项目类型(.csproj)
- java 寻找水仙花数
- [转帖]通俗易懂的Docker 入门教程