1、图例

2、链表节点

public class Node<T> {
public T data;
public Node next;
}

3、具体实现

public class LinkQueue<T> {
private static Node head;
private static Node tail;
private static int size; /**
* 初始化
*/
public void initQueue() {
Node node = new Node();
node.data = null;
node.next = null;
head = tail = node;
size = 0;
} /**
* 是否空
*
* @return
*/
public static boolean isEmpty() {
return head == tail;
} /**
* 入队列
*
* @param element
*/
public void insertQueue(T element) {
Node temp = new Node();
temp.data = element; tail.next = temp; //放节点
tail = temp; //移动尾指针
size++;
} /**
*
*/
public void popQueue() {
if (isEmpty()) {
System.out.println("队列已空,!!!");
return;
}
Node temp = head.next; //创建节点指向头结点所指向
System.out.println("出队列: "+temp.data);
head.next = temp.next;
if (tail == temp) {
tail = head;
}
size--;
} /**
* 元素个数
*/
public static void sizeQueue() {
System.out.println("元素个数:"+size);
} /**
* 遍历元素
*/
public static void printQueue() {
for (Node current = head.next;current != null;current = current.next){
System.out.print(current.data+" ");
}
System.out.println();
}
public static void main(String[] args) {
LinkQueue linkQueue = new LinkQueue();
linkQueue.initQueue(); linkQueue.insertQueue(1);
printQueue();
linkQueue.insertQueue(2);
printQueue();
linkQueue.insertQueue(3);
printQueue();
linkQueue.insertQueue(4);
printQueue(); linkQueue.popQueue();
printQueue();
linkQueue.popQueue();
printQueue();
linkQueue.insertQueue(5);
printQueue(); sizeQueue(); }

4、实现结果

1
1 2
1 2 3
1 2 3 4
出队列: 1
2 3 4
出队列: 2
3 4
3 4 5
元素个数:3

最新文章

  1. C语言-《通讯录》
  2. Topcoder SRM 627 div1 HappyLettersDiv1 : 字符串
  3. [LeetCode]题解(python):039-Combination Sum
  4. HDU-1060(简单数学)
  5. Two kinds of Quaternion SlerpImp (Unity)
  6. 配置Statspack
  7. eclipse中使用loadrunner java api步骤
  8. JAVA并发编程实战---第三章:对象的共享
  9. oracle基本查询语句总结
  10. Python--错误SyntaxError: (unicode error) &#39;unicodeescape&#39; codec can&#39;t decode bytes in position 2-3: truncated \UXXXXXXXX escape
  11. java框架之SpringBoot(5)-SpringMVC的自动配置
  12. Vue.js示例:GitHub提交(watch数据,created钩子,filters过滤); 网格组件(功能:1.检索,2排序);
  13. oracle基础语句学习
  14. POST—常见的4种提交方式
  15. android调用照相机拍照获取照片并做简单剪裁
  16. [Jmeter]通过批处理调用java,java从CSV动态读取登录的用户名和密码,并将其作为参数组合成字符串,写入外部.bat文件,然后通过Java执行这个外部批处理文件
  17. Found an unexpected Mach-O header code: 0x72613c21
  18. 关于VC++6.0与WIN10系统不兼容的解决办法
  19. HDU 6118 度度熊的交易计划 最大费用可行流
  20. Dispose的调用顺序

热门文章

  1. 『深度应用』NLP机器翻译深度学习实战课程&#183;零(基础概念)
  2. Duilib的圆角矩形 抗锯齿优化 弥补RoundRect不足(网易云信borderround版本)
  3. 探究光线追踪技术及UE4的实现
  4. 【Python3爬虫】爬取美女图新姿势--Redis分布式爬虫初体验
  5. React Native 生命周期及相关方法小技巧使用
  6. js全选与取消全选
  7. LoRaWAN_stack移植笔记(四)__RTC
  8. Nacos(七):Nacos共享配置
  9. ionic App 解决android端在真机上 tab处于顶部的Bug
  10. CodeForces 909E