用removeLast和removeFrist来模仿堆和栈

2024-06-19 23:58

本文主要是介绍用removeLast和removeFrist来模仿堆和栈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/*

*在大不久前,我决定自学Java,关注了很多的公众号、微博等。没几天我看到一个笑话:

*晚上孩子哭了,老婆让我去看看。

*我说:“不行,咱们的床是队列,你先上的床就得你先下床。。。

*老婆说:NO NO No,是栈。 

* 紧接着一脚踹到我的屁股上。

* 当时,看了评论,都是在说程序员夫妻欢乐多之类的话,也上网查了堆栈的知识,

* 不是计算机专业的,看得也是云里雾里的。今天是二轮复习基础知识,

* 关于LinkedList有可以模拟堆栈的方法,就上手操作了一下,才理解了这个笑话的真谛,

* 越来越感觉,编程语言的魅力了,开心。

*/

 1 import java.util.LinkedList;
 2 
 3 public class NoNo {
 4     public static void main(String[] args) {
 5         MyQueue q = new MyQueue();
 6         q.add("老婆先上床");
 7         q.add("我在老婆之后上床");
 8 
 9         while (q.isEmpty() == false) {
10 
11             System.out.println(q.get2() + "却要下床哄熊孩子");
12 
13         }
14 
15     }
16 }
17 
18 class MyQueue {
19     private LinkedList List;// 底层
20 
21     MyQueue() {
22         List = new LinkedList();
23     }
24 
25     public void add(Object obj) {
26         List.addFirst(obj);
27     }
28     public Object get2() {
29         // 模仿栈
30         return List.removeFirst();
31     }
32 
33     public boolean isEmpty() {
34         return List.isEmpty();
35     }
36 }
PutOut:
我在老婆之后上床却要下床哄熊孩子
老婆先上床却要下床哄熊孩子
 1 import java.util.LinkedList;
 2 
 3 public class NoNo {
 4     public static void main(String[] args) {
 5         MyQueue q = new MyQueue();
 6         q.add("老婆先上床");
 7         q.add("我在老婆之后上床");
 8 
 9         while (q.isEmpty() == false) {
10             
11                 System.out.println(q.get()+"却要下床哄熊孩子");
12         }
13 
14     }
15 }
16 
17 class MyQueue {
18     private LinkedList List;// 底层
19 
20     MyQueue() {
21         List = new LinkedList();
22     }
23 
24     public void add(Object obj) {
25         List.addFirst(obj);
26     }
27 
28     public Object get(){
29     //模仿队列
30     return List.removeLast();
31         }
32 
33     public boolean isEmpty() {
34         return List.isEmpty();
35     }
36 }
OutPut:
老婆先上床却要下床哄熊孩子
我在老婆之后上床却要下床哄熊孩子

相关知识补充:

1155461-20170628190710071-1810500344.png

追源码:

1155461-20170628191507930-709107486.png

 

这篇关于用removeLast和removeFrist来模仿堆和栈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076523

相关文章

js私有作用域(function(){})(); 模仿块级作用域

摘自:http://outofmemory.cn/wr/?u=http%3A%2F%2Fwww.phpvar.com%2Farchives%2F3033.html js没有块级作用域,简单的例子: for(var i=0;i<10;i++){alert(i);}alert(i); for循环后的i,在其它语言像c、java中,会在for结束后被销毁,但js在后续的操作中仍然能访

在糖尿病患者信息管理系统中,交流区模块想模仿论坛那样几楼几楼的!

在糖尿病患者信息管理系统中,交流区模块想模仿论坛那样几楼几楼的! <s:if test="%{#request.page.pageData!=null}"> <s:iterator value="%{#request.page.pageData}" status="st" var="followCards"> <s:if test="%{#followCards.status==1 &&

自动驾驶真正踏出迈向“用户”的第一步:IROS24新SOTA提出个性化的实例迁移模仿学习

导读: 本文针对自动驾驶规划任务,提出了一种基于实例的迁移模仿学习方法,通过预先训练的微调框架从专家域迁移专业知识,以解决用户域数据稀缺问题。实验结果显示,该方法能有效捕捉用户驾驶风格并实现具有竞争力的规划性能,但仍需开发合适的用户风格测量方法。©️【深蓝AI】编译 1. 摘要 个性化运动规划在自动驾驶领域中具有重要意义,可以满足个人用户的独特需求。然而,以往的工作在同时解决两个关键问题

Qt 模仿企业微信图标实现按钮图片文字上下结构

简述 实现类似企业微信左侧导航栏的上下结构的按钮 效果图 可以用2种方案实现,2种最终效果图如下: 方案1 QToolButton 实现 ui.toolButton->setFixedSize(50, 50);ui.toolButton->setCheckable(true);ui.toolButton->setAutoExclusive(true);ui.toolB

文章解读与仿真程序复现思路——电网技术@EI\CSCD\北大核心《基于双缓冲区生成对抗模仿学习的电力系统实时安全约束经济调度》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

【HarmonyOS】模仿个人中心头像图片,调用系统相机拍照,从系统相册选择图片和圆形裁剪显示 (二)

【HarmonyOS】模仿个人中心头像图片,调用系统相机拍照,从系统相册选择图片和圆形裁剪显示 (二) Demo效果展示: 方案思路: 1.修改调用相机的方式,使用cameraKit进行相机的调用,拍照后返回图片url进行处理。 2.裁剪View,使用画布进行取景框的效果展示 手势拖动和放大缩小图片,裁剪计算在第三章进行讲解。 Demo示例代码: UI主界面 import {

GRE作文模仿要有几个前提条件

我们经常听到说,要提高英语写作能力,就要自己多写,但我们又发现,自己写了,能力却没得到多大提高。其实这是因为没有掌握方法,应该先模仿别人的优秀文章来写才对。   GRE作文模仿要有几个前提条件:   1.要有可以模仿的文章(最好是带有说理性的文章   2.你要理解这个文章,理解它的用词、句子结构、段落结构   3.这些文章都有正确的中文翻译。同时,文章的长度不能超过500字。   怎

skimage包的小优化(2):模仿remove_small_objects()函数保留图片中连通域最大的区域

python模仿remove_small_objects()函数保留图片中连通域最大的区域 skimage包的morphology子模块中,提供了一个remove_small_objects()函数,可以通过自己设定的连通域面积阈值有效去掉图片中的噪点,但是在具体使用过程中会发现:这个函数使用起来还有诸多的不便,好在这个函数的源代码并不长,在在skimage包的小优化(1):模仿remove_s

关于模仿Photoshop的选择功能

功能描述       之前接触过一段时间的Photoshop,现在要做段选标注, 想到Photoshop的选择功能,我又是那种怀旧的人, 于是打算在开源项目labelme上面加一个类似的选择功能。注意,labelme是python实现的, 所以我选择python语言进行再开发。python是用anaconda搭建的,环境管理能省不少事情。       这里只是对在实现的时候遇到的问题的一个记录,

模仿搜狗浏览器加载小球

用过android 搜狗浏览器客户端的用户就知道,每次加载页面就会有个下落的加载小球,为了实现它,我上网查资料,在泡在网上的日子上面找到了相关资料,但是没有具体详细的教程,所以我就分享一下我的思路。 先上一张效果图(由于博主一直没有找到怎么在博客中播放gif,所以就来一张静态的吧,要想看具体效果,清下载源码编译): 具体思路: 1、继承View自写控件,并获取控件长宽。 2、根据已经获