//=================================================
// File Name : LinkQueue_demo
//------------------------------------------------------------------------------
// Author : Common //类名:FirstLastList
//属性:
//方法:
class FirstLastList_long{
private Link_long first;
private Link_long last; public FirstLastList_long() { //构造函数
this.first = null;
this.last = null;
} public boolean isEmpty(){
return (first == null);
} public void insertFirst(long dd){ //从链表的头开始插入
Link_long newLink = new Link_long(dd);
if(isEmpty()){
last = newLink; //不用改变first
}
newLink.next = first;
first = newLink;
} public void insertLast(long dd){ //从链表的尾开始插入
Link_long newLink = new Link_long(dd);
if(isEmpty()){
first = newLink; //不用改变last
}else{
last.next = newLink; //在last后面添加新元素,并修改last的位置
}
last = newLink; //注意:只有一个元素的时候,插入要把last也赋为newLink
} public long deleteFirst(){
Link_long temp = first; //暂存first
if(first.next == null){ //如果只有一个元素,把last也赋为null
last = null;
}
first = first.next; //把next设为first
return temp.dData; //返回原来的first
} public void displayList(){
System.out.println("List(first-->last):");
Link_long current = first; //用于不断改变位置实现遍历
while(current != null){
current.displayLink();
current = current.next;
}
} } //类名:LinkQueue
//属性:
//方法:用双端链表实现队列
class LinkQueue{
private FirstLastList_long theList; public LinkQueue() { //构造函数
theList = new FirstLastList_long(); //创建一个双端链表对象
} public void push(long j){ //从链表的尾开始插入,新来的元素在尾部
theList.insertLast(j);
} public long pop(){
return theList.deleteFirst(); //从链表的头开始弹出,先进的元素先被弹出
} public boolean idEmpty(){
return theList.isEmpty();
} public void displayQueue(){
System.out.println("Queue (front-->rear)");
theList.displayList();
}
} //主类
//Function : LinkQueue_demo
public class LinkQueue_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
LinkQueue theQueue = new LinkQueue();
theQueue.push(10);
theQueue.push(20);
theQueue.push(30);
theQueue.displayQueue(); theQueue.pop();
theQueue.pop();
theQueue.displayQueue();
} }

Java数据结构——用双端链表实现队列的更多相关文章

  1. java数据结构-09双端队列

    一.相关概念: (Deque)双端队列能够在队头.队尾进行添加.删除等操作  二.接口设计:  三.代码实现 public class Deque<E> { private List< ...

  2. Java数据结构和算法(四)--链表

    日常开发中,数组和集合使用的很多,而数组的无序插入和删除效率都是偏低的,这点在学习ArrayList源码的时候就知道了,因为需要把要 插入索引后面的所以元素全部后移一位. 而本文会详细讲解链表,可以解 ...

  3. 队列(存储结构双端链表)--Java实现

    /*用链表实现的队列--使用的是双端链表 *注意:空指针错误肯定是引用没有指向对象 * */ public class MyLinkedQueue { private MyFirstAndLastLi ...

  4. 《Java数据结构与算法》笔记-CH5-链表-3双端链表

    /** * 双端链表的实现 */ class LinkA { public long dData; public LinkA next; public LinkA(long d) { dData = ...

  5. java数据结构——单链表、双端链表、双向链表(Linked List)

    1.继续学习单链表,终于摆脱数组的魔爪了,单链表分为数据域(前突)和引用域(指针域)(后继),还有一个头结点(就好比一辆火车,我们只关心火车头,不关心其它车厢,只需知晓车头顺藤摸瓜即可),头结点没有前 ...

  6. Java单链表、双端链表、有序链表实现

    单链表: insertFirst:在表头插入一个新的链接点,时间复杂度为O(1) deleteFirst:删除表头的链接点,时间复杂度为O(1) 有了这两个方法,就可以用单链表来实现一个栈了,见htt ...

  7. JAVA基础——链表结构之双端链表

    双端链表:双端链表与传统链表非常相似.只是新增了一个属性-即对最后一个链结点的引用 如上图所示:由于有着对最后一个链结点的直接引用.所以双端链表比传统链表在某些方面要方便.比如在尾部插入一个链结点.双 ...

  8. java实现双端链表

    PS:双端链表(持有对最后一个节点的引用,允许表尾操作与表头操作等效的功能) public class DoubleLinkedList { //节点类 static class Node { pub ...

  9. 双端链表--Java实现

    /*双端链表--比普通链表多了一个指向最后一个节点的引用 * 特点: 链表可以进行尾巴插入--输出顺序和输入顺序一致 * 但是不可以进行尾巴删除因为没有倒数第二节点的引用 * */ public cl ...

随机推荐

  1. Beta版本冲刺———第二天

    会议照片: 项目燃尽图: 1.项目进展: 昨天的困难:分数排行榜的设计 今天解决的进度:完成了界面优化以及建立新的排行榜选项卡界面. 明天要做的事情:分数排行榜的功能设计 2.每个人每天做的事情 郭怡 ...

  2. hibernate的hql查询

    1.概念介绍 1.Query是Hibernate的查询接口,用于从数据存储源查询对象及控制执行查询的过程,Query包装了一个HQL查询语句. 2.HQL是Hibernate Query Langua ...

  3. tttttabs

    <div id="fil-page" class="fil-page"> <div class="fil-container&quo ...

  4. OkHttp 3.4入门

    OkHttp 3.4入门 配置方法 (一)导入Jar包http://repo1.maven.org/maven2/com/squareup/okhttp3/okhttp/3.4.0-RC1/okhtt ...

  5. GDB的使用

    #list #break <行号|函数名|条件表达式> #delete  #run #continue #finish #quit #next #step #print #watch  l ...

  6. iOS开发小技巧--修改按钮内部图片和文字之间的间距(xib)

    调整按钮的Edge属性,选择调整图片的Edge还是label的Edge,如图:

  7. .Net Core 1.0.0 RC2安装及示例教程

    前几天微软发布了.Net Core1.0.0 RC2 Preview版本,一直都想尝试下跨平台的.Net Core,一直拖到今天,也参考了下园友们的经验,闲时整理了一下安装的步骤,供大家参考. 我们要 ...

  8. PyCharm2016.23专业版注册码

    43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...

  9. 【POJ 2503】Babelfish(字符串)

    题 给定字典,再询问. 字典与询问之间有一个空行. cin.peek()是一个指针指向当前字符. #include<iostream> #include<string> #in ...

  10. asp.net mvc 外网获取不到port问题解决

    var IPandPort = Request.ServerVariables["HTTP_HOST"];