`
baby69yy2000
  • 浏览: 187791 次
  • 性别: Icon_minigender_1
  • 来自: 自己输入城市...
社区版块
存档分类
最新评论

链式队列的实现

    博客分类:
  • Util
阅读更多
package Queue;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.NoSuchElementException;

public class LinkedQueue<T> {

	private LinkedList<T> qList = null;

	private int qSize = 0;

	public LinkedQueue() {
		qList = new LinkedList<T>();
	}

	/**如果队列为空,返回true, 否则返回false*/
	public boolean isEmpty() {
		return qList.isEmpty();
	}

	/**返回队列元素个数*/
	public int size() {
		return qSize;
	}
	
	/**在队列的尾部插入指定元素*/
	public void push(T item) {
		qList.add(item);
		qSize++;
	}

	/**删除队列头部的元素并且返回这个元素*/
	public T pop() {
		T tmp;
		if (this.isEmpty())
			throw new NoSuchElementException(
					"LinkedQueue pop(): queue empty");
		tmp = qList.removeFirst();
		qSize--;
		return tmp;
	}
	
	/**返回位于队列头部的元素*/
	public T peek() {
		if (this.isEmpty())
			throw new NoSuchElementException(
					"LinkedQueue peek(): queue empty");
		return qList.getFirst();
	}
	
	/**打印队列内元素*/
	public void print() {
		T item;
		Iterator<T> it = qList.iterator();
		while(it.hasNext()) {
			item = it.next();
			System.out.print(item + " ");
		}
	}

	/*public static void main(String[] args) {
		LinkedQueue<String> q = new LinkedQueue<String>();
		q.push("A");
		q.push("B");
		q.push("C");
		System.out.println(q.size()); // 3
		q.print(); // A B C
		System.out.println('\n' + q.pop()); // A
		q.print(); // B C
		System.out.println('\n' + q.peek()); // B
	}*/

}
分享到:
评论

相关推荐

    C++数据结构之链式队列实现

    以下是对链式队列实现的详细解释: ### 1. 链式队列的基本概念 队列是一种线性数据结构,其操作特性是只允许在队列的一端(称为队尾)进行插入操作(入队),而在另一端(称为队头)进行删除操作(出队)。链式...

    链式队列实现例子

    JAVA语言实现数据的链式结构 分享下挣挣人气

    数据结构--链式队列

    动态内存管理是链式队列实现中的核心部分。在创建新节点时,我们需要使用`malloc`函数为节点分配内存,而在不再需要节点时,使用`free`函数释放内存以防止内存泄漏。正确管理内存对于程序的稳定性和性能至关重要,...

    顺序队列和链式队列的实现

    顺序队列和链式队列都是常用的队列实现方式,各有其优缺。顺序队列的优点是实现简单、队列元素可以随机访问,缺点是队列扩容复杂、队列元素的添加和删除效率较低。链式队列的优点是队列元素的添加和删除效率高、队列...

    liunx多线程_生产者与消费者模型_链式队列实现.zip|多线程_生产者与消费者模型_链式队列实现.zip

    fun.cpp中主要为队列读写功能的实现 struct Queue *init_queue();//初始化 void en_queue(struct Queue *q,void* data,size_t len);//向队列的尾部插入一个数据。 void de_queue(struct Queue *q);//删除头部一个...

    链式队列的基本运算

    链式队列是一种在计算机科学中广泛使用的数据结构,它基于链表实现,与传统的数组队列相比,具有更大的灵活性。在本程序中,我们主要关注链式队列的六个核心操作,这些操作对于理解和应用链式队列至关重要。 1. **...

    java队列实现(顺序队列、链式队列、循环队列)

    在Java中,队列的实现主要有三种:顺序队列、链式队列和循环队列。下面我们将详细探讨这三种队列的实现方式。 1. **顺序队列**: 顺序队列通常是基于数组实现的。在Java中,我们可以使用ArrayList或LinkedList来...

    球钟问题(链式栈和链式队列实现)

    【球钟问题】是一个独特的计时机制,...这个实现不仅展示了链式栈和链式队列的应用,还提供了对时间表示的一种创新思考。理解这个机制可以帮助我们更好地理解数据结构在实际问题中的应用,以及如何利用它们来解决问题。

    c\c++链式队列 源代码

    ### C/C++中的链式队列实现 在C/C++中,我们可以使用结构体来定义链表节点,包含数据和指向下一个节点的指针。例如,对于一个整型数据的链式队列,可以定义如下: ```c++ struct Node { int data; Node* next; };...

    c语言 链式队列的实现

    在C语言中,链式队列的实现通常涉及结构体的定义、节点的创建与销毁、以及一系列针对队列操作的函数。下面我们将深入探讨链式队列的实现细节。 首先,我们需要定义一个结构体来表示队列中的节点。每个节点包含两个...

    duilie.rar_链式队列

    在本案例中,"duilie.rar_链式队列" 提供了关于链式队列实现的详细内容,通过duilie.doc文档可以深入学习其具体实现。 ### 链式队列的基本概念 1. **队列**:队列是一种先进先出(First In First Out, FIFO)的数据...

    链式队列C实现

    链式队列是一种数据结构,它是队列的一种实现方式,主要特点是使用链表来存储队列中的元素。在计算机科学中,队列是一种先进先出(First In First Out, FIFO)的数据结构,常用于处理一系列待处理的任务或事件。与...

    链式队列的表示和实现源码

    下面将详细讨论链式队列的表示、实现、以及常用的操作。 首先,我们来看链式队列的表示。链式队列由两部分组成:队头(front)和队尾(rear)。队头指向队列的第一个元素,而队尾指向当前队列的最后一个元素。在...

    C语言实现链式队列

    链式队列

    链式队列优化C实现

    链式队列是一种数据结构,它使用链表作为底层实现,相比数组实现的队列,具有更大的灵活性。在本主题中,我们将详细讨论...在C语言中,这样的链式队列实现可以灵活应用于各种需要先进先出(FIFO)规则的数据处理场景。

    链式队列c程序

    在完成这些基本操作后,我们可以编写主函数来测试我们的链式队列实现,例如: ```c int main() { Queue* q = initQueue(); enqueue(q, 1); enqueue(q, 2); enqueue(q, 3); printf("Queue: "); printQueue(q)...

    严蔚敏-数据结构--链式队列c++实现

    链式队列是一种在计算机科学中广泛使用的数据结构,它以链表为基础,实现了队列“先进先出”(FIFO)的原则。在C++中实现链式队列,可以让我们更加灵活地处理数据,特别是在处理大量数据或者需要动态扩展容量的场景...

    数据结构栈、链式队列、树的实现

    以下是一个简单的链式队列实现: ```python class Node: def __init__(self, data=None): self.data = data self.next = None class LinkedQueue: def __init__(self): self.front = self.rear = None def ...

    队列的链式实现(java)

    以下是一个简单的Java链式队列实现: ```java public class Node { int data; Node next; public Node(int data) { this.data = data; this.next = null; } } public class Queue { private Node front; ...

Global site tag (gtag.js) - Google Analytics