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 }

最新文章

  1. MySQL碎碎念
  2. 【转载】--仅用 []()+! 就足以实现几乎任意Javascript代码
  3. iOS 学习 - 22 异步解析 JSON,使用 FMDB 存储,TableView 显示
  4. 深入理解JQuery插件开发
  5. [Android Pro] CountDownTimer倒计时
  6. OSG模型简单控制
  7. 使用DirectWrite测量Direct2D文字大小
  8. Microsoft Dynamics CRM 前瑞开发
  9. [SQL]合并字符串
  10. 移动端页面使用rem来做适配
  11. 一些提高开发效率的 Category
  12. ——————————JavaScript中,对String字符串的一些操作——————————
  13. Unity2017灯光烘焙知识点
  14. scrapy:get cookie from response
  15. Video 对象方法 canPlayType()
  16. Avatar
  17. 【Linux】shell编程案例
  18. 2017年软件工程第十二次作业-PSP总结报告
  19. c# 判断一个数是不是质数或者求一个数的公约数的算法
  20. Stochastic Multiple Choice Learning for Training Diverse Deep Ensembles

热门文章

  1. java:Echarts,POI
  2. Debian系统软件安装
  3. axios在Vue中的简单应用(一)
  4. 【AMAD】newspaper -- 爬取/提取新闻网页中的文本,元数据
  5. Django学习笔记(二)URL编写规则
  6. 解析之Apache解析
  7. 建立EF访问数据库架构时,出现One or more validation errors were detected during model generation
  8. 用vs2008打开sln项目总是说没有对应的,打不开vs2008的工程文件提示不支持项目类型(.csproj)
  9. java 寻找水仙花数
  10. [转帖]通俗易懂的Docker 入门教程