list实现栈以及队列操作
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 }
list实现栈以及队列操作的更多相关文章
- [js]数组栈和队列操作
写在前面 在项目中,对数组的操作还是比较常见的,有时候,我们需要模拟栈和队列的特性才能实现需求,这里记录一下这个知识点. 栈 栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一 ...
- JS数据结构的栈和队列操作
数据结构:列表.栈.队列.链表.字典.散列.图和二叉查找树! 排序算法:冒牌.选择.插入.希尔.归并和快速! 查找算法:顺序查找和二分查找 在平时工作中,对数组的操作很是平常,它提供了很多方法使用,比 ...
- 关于JS数组的栈和队列操作
1.js支持重载吗? 虽然js 本身并没有函数重载,但是可以用arguments来模拟重载,函数名相同,参数不同,arguments的length属性,获取参数个数,索引属性获取参数值 2.什么是作用 ...
- 用LinkedList集合演示栈和队列的操作
在数据结构中,栈和队列是两种重要的线性数据结构.它们的主要不同在于:栈中存储的元素,是先进后出:队列中存储的元素是先进先出.我们接下来通过LinkedList集合来演示栈和队列的操作. import ...
- YTU 3001: 判断操作是否合法(栈和队列)
3001: 判断操作是否合法(栈和队列) 时间限制: 1 Sec 内存限制: 128 MB 提交: 4 解决: 2 题目描述 假设以I和O分别表示进栈和出栈操作,栈的初态和终态均为空,进栈和出栈的 ...
- 剑指Offer——Java实现栈和队列的互模拟操作
剑指Offer--Java实现栈和队列的互模拟操作 栈模拟队列 题目:JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作.队列中的元素为int类型. 思路:其实就是把队列正常入 ...
- [剑指offer]09用两个栈实现队列插入和删除操作,C++实现
原创博文,转载请注明出处! # 本文为牛客网<剑指offer>刷题笔记 1.题目 # 用两个栈实现队列的插入和删除操作 2.思路 栈服从先入后出的原则处理数据,队列服从先入先出的原则处理数 ...
- C数据结构(文件操作,随机数,排序,栈和队列,图和遍历,最小生成树,最短路径)程序例子
文件操作 文件打开方式 意义 ”r” 只读打开一个文本文件,只允许读数据 ”w” 只写打开或建立一个文本文件,只允许写数据 ”a” 追加打开一个文本 ...
- [ACM训练] 算法初级 之 数据结构 之 栈stack+队列queue (基础+进阶+POJ 1338+2442+1442)
再次面对像栈和队列这样的相当基础的数据结构的学习,应该从多个方面,多维度去学习. 首先,这两个数据结构都是比较常用的,在标准库中都有对应的结构能够直接使用,所以第一个阶段应该是先学习直接来使用,下一个 ...
随机推荐
- springboot后端实现条件查询,要配合使用mybatis
package cn.com.dyg.work.sqlgen; import cn.com.dyg.work.common.exception.DefException; import cn.com. ...
- markdown-博客编辑
1. 快捷键 2. 基本语法 2.1 字体设置斜体.粗体.删除线 2.2 分级标题 2.3 链接 2.4 分割线 2.5 代码块 2.6 引用 2.7 列表 2.8 表格 3. 常用技巧 3.1 换行 ...
- 描述下fastJSON,jackson等等的技术
①Jackson:依赖的jar包较少,简单易用性能高,更新速度也比较快,但是对于复杂类型的json转换bean会出 现问题,一些集合Map,List的转换出现问题,对于复杂类型的bean转换Json, ...
- KCP - A Fast and Reliable ARQ Protocol
KCP - A Fast and Reliable ARQ Protocol README in English 简介 KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均 ...
- Django 数据库操作
Django 数据库操作 Django运算表达式与Q对象/F对象 1 模型查询 概述: 1 查询集:表示从数据库中获取的对象的集合 2 查询集可以有多个过滤器,通过 逻辑运算符连接 3 过滤器就是一个 ...
- 应用安全 - PHP - CMS - DeDeCMS - 漏洞 - 汇总
SSV-97074 Date 类型 前台任意密码修改 影响范围 前置条件 CVE-2018-20129 Date 类型前台文件上传 影响范围 前置条件(1)前台登录(2)/member/article ...
- 传统Java Web(非Spring Boot)、非Java语言项目接入Spring Cloud方案--temp
技术架构在向spring Cloud转型时,一定会有一些年代较久远的项目,代码已变成天书,这时就希望能在不大规模重构的前提下将这些传统应用接入到Spring Cloud架构体系中作为一个服务以供其它项 ...
- DBGridEh列宽自动适应内容的简单方法
///////Begin Source uses Math; function DBGridRecordSize(mColumn: TCo ...
- Java基础(十)
复习 静态方法与成员方法 //另一个类里的静态和成员方法 public class MyClass { //静态方法 public static void method2() { System.out ...
- ES6简单初识
ES常用命令介绍 函数的Rest参数和扩展 Promise使用 Module.exports和ES6 import/export的使用 promise使用 promise 为了解决callback嵌套 ...