package zy813ture;

public class MyLinkedQueue1 {
private Node head;

private Node last = head = new Node();//初始化可以设定默认值,形式固定

// private int size;

private class Node {
private Object data;

private Node next;
}

public MyLinkedQueue1() {
// last = head = new Node();
// last=head;
}

public boolean offer(Object element) {// 将指定的元素插入此队列
if (element == null) {
throw new NullPointerException();
}

// 1
Node node = new Node();
node.data = element;

// 2
last.next = node;

// 3
last = node;
// size++;
return true;

}

public Object peek() {// 获取不移除此队列的头,如果此队列为空,则返回 null。
if (head.next == null) {
return null;
}

return head.next.data;
}

public Object poll() {// 获取并移除此队列的头,如果此队列为空,则返回 null。
if (head.next == null) {
return null;
}

//1
Node node = head;

//2
head= head.next;

//3
//node= null;
node =null;
return head.data;
}
public static void main(String []args){
MyLinkedQueue1 me= new MyLinkedQueue1();
me.offer("ab1");
me.offer("ab2");
me.offer("ab3");
me.offer("ab4");
me.offer("ab5");
//System.out.println(me.peek());
System.out.println(me.poll());//ab1 null
System.out.println(me.poll());//
//System.out.println(me.peek());

//System.out.println(me.peek());

}

}

LinkedQueue的底层实现的更多相关文章

  1. 深入浅出Redis-redis底层数据结构(上)

    1.概述 相信使用过Redis 的各位同学都很清楚,Redis 是一个基于键值对(key-value)的分布式存储系统,与Memcached类似,却优于Memcached的一个高性能的key-valu ...

  2. Objective-C中block的底层原理

    先出2个考题: 1. 上面打印的是几,captureNum2 出去作用域后是否被销毁?为什么? 同样类型的题目: 问:打印的数字为多少? 有人会回答:mutArray是captureObject方法的 ...

  3. nodejs操作arduino入门(javascript操作底层硬件)

    用Javascript来操作硬件早就不是一件稀奇的事情了. 所以作为一名电子专业出身的FE,我也打算尝试一下用js来驱动arduino: 要想操作这些底层硬件,肯定是需要一些工具的,我这里介绍的工具主 ...

  4. 支撑Java NIO 与 NodeJS的底层技术

    支撑Java NIO 与 NodeJS的底层技术 众所周知在近几个版本的Java中增加了一些对Java NIO.NIO2的支持,与此同时NodeJS技术栈中最为人称道的优势之一就是其高性能IO,那么我 ...

  5. 介绍,介绍我的底层支持库 Net.Sz.CFramework

    Net.Sz.CFramework  是我自己的底层库,是经过验证的底层库. 包含: socket tcp协议,socket http协议线程池,线程模型,任务模型,定时器模型,日志模块脚本模块一些辅 ...

  6. iOS - 分析JSON、XML的区别和解析方式的底层是如何实现的(延伸实现原理)

    <分析JSON.XML的区别,JSON.XML解析方式的底层是如何实现的(延伸实现原理)> (一)JSON与XML的区别: (1)可读性方面:基本相同,XML的可读性比较好: (2)可扩展 ...

  7. C#剪切,复制,粘贴底层应用编写

    zz备用复制剪切粘贴的底层应用 /// <summary> /// 复制或剪切文件至剪贴板(方法) /// </summary> /// <param name=&quo ...

  8. 从PHP底层源码去深入理解数组,并用C模拟PHP关联数组(原创)

    PHP是一门入门容易,使用范围广泛的语言,以其灵活性以及web后端开发被很多人熟知,也被很多人戏称“PHP是世界上最好的语言”.本人是一名“忠实”的PHPer,相信用过PHP的程序员都会体会到PHP数 ...

  9. Azure底层架构的初步分析

    之所以要写这样的一篇博文的目的是对于大多数搞IT的人来说,一般都会对这个topic很感兴趣,因为底层架构直接关乎到一个公有云平台的performance,其实最主要的原因是我们的客户对此也非常感兴趣, ...

随机推荐

  1. 洛谷P2831 愤怒的小鸟 + 篮球比赛1 2

    这三道题一起做,有一点心得吧. 愤怒的小鸟,一眼看上去是爆搜,但是实现起来有困难(我打了0分出来). 还有一种解法是状压DP. 抛物线一共只有那么多条,我们枚举抛物线(枚举两个点),这样就能够预处理出 ...

  2. C# 下载文件 只利用文件的存放路径来下载

    第一种方式: 最简单的就是返回一个file类型的数据即FilePathResult类型的对象 string serverPath = ConfigurationManager.AppSettings[ ...

  3. 安装Nginx配置常用参数含义

    --prefix #nginx安装目录,默认在/usr/local/nginx--pid-path #pid问件位置,默认在logs目录--lock-path #lock问件位置,默认在logs目录- ...

  4. 一个时间上的比较 if else

    if (w<b.w) ; if (w>b.w) ; if (w<b.w) ; else if (w>b.w) ; 对于任何情况,执行的次数都是一样.只是对于汇编的代码,第二个方 ...

  5. pytest 2.测试用例setup和teardown

    之前我写的unittest的setup和teardown,还有setupClass和teardownClass(需要配合@classmethod装饰器一起使用),接下来就介绍pytest的类似于这类的 ...

  6. 2018.12.21 浪在ACM 集训队第十次测试赛

     浪在ACM 集训队第十次测试赛 A Diverse Substring B Vasya and Books C Birthday D LCM A 传送门 题解 B 传送门 题解: 这道题,就比较简单 ...

  7. HR算法具体过程

    首先研究HR算法在概率分布估计中的实现,我们再考虑如何将其应用于频繁项挖掘中. 一.确定输入数据类型 def generate_uniform_distribution(k): raw_distrib ...

  8. 高级组件——菜单栏JMenuBar

    菜单栏JMenuBar,菜单JMenu,菜单项JMenuItem 一旦A有子菜单项,则A为菜单JMenu,而不是菜单项JMenuItem import javax.swing.*; import ja ...

  9. php递归函数中使用return的注意事项

    php递归函数中使用return的时候会碰到无法正确返回想要的值得情况,如果不明白其中的原因,很难找出错误的,就下面的具体例子来说明一下吧: function test($i){ $i-=4; if( ...

  10. hystrix实战

    https://blog.csdn.net/Ezreal_King/article/details/72942823