`

双端链表实现一个队列

 
阅读更多

队列最大的特点就是:先进先出,把握这个特点后,我们很容易用双端链表实现一个队列

 

 

/**
 * 双端链表类
 * @author zhang
 *
 */
public class FirstLastList {
	private Link first;
	private Link last;
	public FirstLastList(){
		first=null;
		last=null;
	}
	
	public boolean isEmpty(){
		return first==null;
	}
	
	public void insertLast(long dd){
		Link newLink = new Link(dd);
		if(isEmpty()){
			first=newLink;
		}else{
			last.next = newLink;
		}
		last=newLink;
	}
	
	public long deleteFirst(){
		long temp=first.dData;
		if(first.next==null){
			last=null;
		}
		first=first.next;
		return temp;
	}
	
	public void displayList(){
		Link current=first;
		while(current!=null){
			current.displayLink();
			current=current.next;
		}
		System.out.println();
	}
}

 

/**
 * 双端链表实现队列
 * @author zhang
 *
 */
public class LinkQueue {
	private FirstLastList theList;
	public LinkQueue(){
		theList=new FirstLastList();
	}
	
	public boolean isEmpty(){
		return theList.isEmpty();
	}
	
	public void insert(long j){//插入从队尾插
		theList.insertLast(j);
	}
	
	public long remove(){//删除从队头删
		return theList.deleteFirst();
	}
	
	public void displayQueue(){
		System.out.print("Queue(font-->rear):");
		theList.displayList();
	}
	
}

 

/**
 * 链接点类
 * 
 * @author zhang
 *
 */
public class Link {
	public long dData;
	public Link next;

	public Link(long dData) {
		this.dData = dData;
	}

	public void displayLink() {
		System.out.print(dData + " ");
	}
}

 

分享到:
评论

相关推荐

    双端链表和双向链表Java代码

    `FirstLastLinkList.java`可能是一个实现双向链表的类,其命名暗示了它主要关注链表的首尾操作,类似于栈或队列。在这个类中,我们可能会找到类似的方法,如`addFirst()`, `addLast()`, `removeFirst()`, 和 `...

    双端队列C++实现 双端队列C++实现

    然而,如果你想要自定义一个双端队列,我们可以从头开始探讨如何实现。 自定义双端队列的基本思想是使用动态数组或链表作为底层数据结构。这里我们以动态数组为例,因为它提供了更好的空间效率和随机访问性能。一个...

    java双端队列的实现-Java实现自定义双端队列(链表和数组两种方式) 数组和链表.pdf

    在 Java 中,LinkedList 的内部使用双端链表队列原理实现,而 ArrayList 的内部使用双端数组队列原理实现。 Java 实现自定义双端队列可以通过链表和数组两种方式实现,双端队列可以充当单端队列,也可以用于充当栈...

    Java基于双向链表实现双端队列结构(算法源码)

    * 基于双向链表实现双端队列结构 */ package dsa; public class Deque_DLNode implements Deque { protected DLNode header;//指向头节点(哨兵) protected DLNode trailer;//指向尾节点(哨兵) protected ...

    数组和链表实现队列

    例如,`collections.deque` 在Python中提供了一个双端队列的实现。 总之,理解并熟练运用数组和链表实现队列,对于提升算法设计和问题解决能力至关重要。通过不断的实践和学习,可以更好地应对各种复杂的数据结构和...

    链表-使用Python基于链表实现的多种队列数据结构比较.zip

    另外,还有双端队列(Deque),允许在两端进行插入和删除操作,Python的`collections`模块中的`deque`类就是双端队列的一种实现。 除了基本的队列操作,资料包可能还涉及队列在实际问题中的应用,比如广度优先搜索...

    基于双向链表的基数排序

    基数排序(radix sort)又称桶排序(bucket sort),相对于常见的比较排序,基数排序是一种分配式排序,需要将关键字...为了尽可能少的消耗复制时占用的空间,桶的数据结构选择链表,为了构造队列,选择使用双向列表。

    双端队列派生类

    双端队列,在基础类上派生 用来实现平移递推滤波数据存储

    双端队列源代码

    6. **回文检测**:在文本处理中,双端队列可以用于检测一个字符串是否为回文。 综上所述,双端队列作为一种灵活的数据结构,其在各种编程任务中都有广泛的应用。在提供的“作业:双端队列”压缩包中,应包含了实现...

    数据结构课设——小大根交替堆实现的双端优先级队列及应用

    小大根交替堆实现的双端优先级队列是一个非常有用的数据结构,它可以同时满足队列的 FIFO 性质和优先级队列的性质。该数据结构可以广泛应用于各种需要优先级队列的场景中,例如学生成绩管理系统等。

    【实验报告】 线性数据结构的实现与应用_双端队列_逆波兰式_呼叫中心_XAUAT_(原问题自杜克大学C++ Stacks and Queues and List

    1. 双端队列的双链表实现:双链表是一种双向链表,每个节点包含数据元素和两个指针,分别指向前一个节点和后一个节点。在双端队列中,可以从前端或后端进行插入和删除操作,需要设计相应的成员函数来支持这些操作。 ...

    基于双向链表实现双端队列结构算法(java算法源码)

    * 基于双向链表实现双端队列结构 */ package dsa; public class Deque_DLNode implements Deque { protected DLNode header;//指向头节点(哨兵) protected DLNode trailer;//指向尾节点(哨兵) protected ...

    duilie.rar_双端队列

    总结来说,"duilie.rar_双端队列"项目是关于实现和使用循环双端队列的一个实例,其中`duilie.cpp`提供了自定义循环双端队列的数据结构和操作函数,而`www.pudn.com.txt`可能包含相关的使用指南和示例。通过理解和...

    用链表实现队列(有错误).zip

    为了确保链表队列的正确实现,我们需要进行详尽的测试,包括边界条件(如空队列、只有一个元素的队列等)和各种组合操作(如连续入队、连续出队、交替入队和出队等)。 此外,理解链表和队列的概念对于理解和设计...

    双端队列的数据结构与Python实现详解(包含详细的完整的程序和数据)

    并通过具体Python编码实现了链表式的双端队列,提供了详尽的操作步骤及其运行实例。 适用人群:对于正在研究数据结构的学习者或是希望提高自己理解和利用高级数据类型能力的学生和技术从业者都颇具价值。 使用场景及...

    Python 超详细算法与数据结构视频教程

    双链表,循环双端链表 队列,双端队列,循环双端队列 栈,栈溢出 算法分析,时间复杂度 大O 表示法 哈希表,散列冲突 字典 集合 递归 查找:线性查找和二分查找 基本排序算法: 冒泡、选择、插入排序 高级排序算法: ...

    【课件】3.2.4_双端队列.pdf

    - **初始化**:定义一个固定大小的数组,用于存储队列中的元素。 - **插入操作**:当在队首插入时,需要更新头部指针;当在队尾插入时,需要更新尾部指针。 - **删除操作**:删除队首元素时,需要移动所有后续元素...

    两种方法实现队列的相关操作

    在链表中,我们可以用一个指针指向队头,另一个指针指向队尾,以便快速进行这些操作。当队列为空时,两个指针都为NULL;当队列满时,队尾指针的下一个节点为队头指针。通过这种方式,我们可以高效地实现队列的插入和...

    人工智能-项目实践-python-顺序表、链表、栈、队列、树、Hashmap等数据结构;排序、二分法查找、树遍历等常见算法实现

    顺序表、链表、栈、队列、树、Hashmap等数据结构;排序、二分法查找、树遍历等常见算法实现python语言实现 常见数据结构 顺序表 Python中的list和tuple两种类型采用了顺序表的实现...双端队列(double-ended queue)

Global site tag (gtag.js) - Google Analytics