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)
再次面对像栈和队列这样的相当基础的数据结构的学习,应该从多个方面,多维度去学习. 首先,这两个数据结构都是比较常用的,在标准库中都有对应的结构能够直接使用,所以第一个阶段应该是先学习直接来使用,下一个 ...
随机推荐
- 图片和Base64字符串互转
图片URL转成Base64字符串 /// <summary> /// 通过Url获取到Image格式的文件 /// </summary> /// <param name= ...
- 将序列化成json格式后日期(毫秒数)转成日期格式
System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaS ...
- CNN卷积汇总
1,卷积作用:减少参数(卷积核参数共享),卷积过程中不断对上一个输出进行抽象,由局部特征归纳为全局特征(不同卷积层可视化可以观察到这点) 2,卷积核 早期卷积核由人工总结,如图像处理中有: 深度神经网 ...
- 记录一次MySQL进程崩溃,无法重启故障排查
最近程序在跑着没几天,突然访问不了,查看应用进程都还在.只有数据库的进程down掉了.于是找到日志文件看到如下错误 -- :: [Note] InnoDB: Initializing buffer p ...
- sqlalchemy基本的增删改查
#encoding: utf-8 from sqlalchemy import create_engine,Column,Integer,String from sqlalchemy.ext.decl ...
- 如何在Windows中手动生成SSH密钥?(转)
在Windows上,您可以通过多种方式创建SSH密钥.Windows需要SSH客户端,但在其操作系统上没有默认的SSH客户端.请注意,Windows目前正在测试本机OpenSSH应用程序,一般,不提倡 ...
- hive与hbase的交互简要示意
建表 create external table if not exists hive2hbase( id int, ---> 对应hbase的rowkey (即下面的:key) age int ...
- C++多线程基础学习笔记(四)
一.创建多个子线程 前面三章讲的例子都是只有一个子线程和主线程,然而实际中有多个子线程.那么下面介绍如何创建多个子线程. #include <iostream> #include < ...
- 与高精死杠的几天——记两道简单的高精dp
(同样也是noip往年的题 1.矩阵取数游戏 题目链接[Luogu P1005 矩阵取数游戏] \(\mathcal{SOLUTION}:\) 通过对题目条件的分析,我们可以发现,每一行取数对答案的 ...
- priority_queue member function
没有优先队列的dijkstra不算真的dijkstra 所以我又回来补常识了 <1>priority_queue::emplace <7>priority_queue::top ...