`
sunxboy
  • 浏览: 2869940 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

链表之队列的实现

阅读更多
java 代码
 
  1. /** 
  2.  *  
  3.  */  
  4. package link;  
  5.   
  6. /** 
  7.  * @author sunxboy 
  8.  * 
  9.  */  
  10. public class Node {  
  11.   
  12.     /** 
  13.      * 链表结构的特征: 
  14.      * 分二部分: 
  15.      * 第一部分为数据 
  16.      * 第二部分为地址,它指下一个节点 
  17.      */  
  18.     public int data;  
  19.     public Node next;  
  20.       
  21.     public Node(int data) {  
  22.         this.data=data;  
  23.     }  
  24. }  

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

java 代码
 
  1. /** 
  2.  *  Queue.java 
  3.  *  这是一个队列,队列有如下特点: 
  4.  *  先进先出 
  5.  *  即:从尾部加入(push)新数据 
  6.  *     从头部取出(pop)数据 
  7.  */  
  8. package link;  
  9.   
  10. /** 
  11.  * @author sunxboy 9:28:12 AM May 22, 2007 
  12.  */  
  13. public class Queue {  
  14.   
  15.     Node first;  
  16.   
  17.     Node last;  
  18.   
  19.     /** 
  20.      * 从尾部加入数据 
  21.      *  
  22.      * @param data 
  23.      * @return 是否加入成功 
  24.      */  
  25.     public boolean push(int data) {  
  26.         Node node = new Node(data);  
  27.         // 若链表为空  
  28.         if (last == null) {  
  29.             last = node;  
  30.             first = node;  
  31.             return true;  
  32.         }  
  33.         // 在最后追加一个新节点  
  34.         last.next = node;  
  35.         // 更新尾节点s  
  36.         last = node;  
  37.         return true;  
  38.     }  
  39.   
  40.     /** 
  41.      * 从头部取出数据 
  42.      *  
  43.      * @return 被取出的节点数据 
  44.      */  
  45.     public int pop()throws Exception{  
  46.         if (first == null)  
  47.             throw new Exception("链表已为空!");  
  48.         int data = first.data;  
  49.   
  50.         if (first.next == null)  
  51.             last = null;  
  52.       
  53.             first = first.next;  
  54.         return data;  
  55.     }  
  56.       
  57.     public static void main(String[] args) throws Exception {  
  58.         Queue queue=new Queue();  
  59.         queue.push(1);  
  60.         queue.pop();  
  61.         queue.pop();  
  62.         queue.push(2);  
  63.         queue.push(6);  
  64.         queue.push(7);  
  65.         while(!(queue.first==null))  
  66.         {  
  67.             System.out.println(queue.pop());  
  68.         }  
  69.     }  
  70. }  
分享到:
评论

相关推荐

    数组和链表实现队列

    本话题主要探讨了两种常用的数据结构——数组和链表——在实现队列这一线性数据结构时的应用。队列是一种先进先出(First In First Out, FIFO)的数据结构,它的主要操作包括入队(enqueue)、出队(dequeue)以及...

    c++链表队列的实现

    根据给定文件的信息,我们可以总结出以下关于C++中链表队列实现的相关知识点: ### 一、链表队列的基本概念 链表队列是一种使用链表结构来实现的队列数据结构。队列是一种先进先出(First In First Out, FIFO)的...

    链表队列的实现

    链表队列的实现 链表队列的具体增删改查实现 是一种单链表实现

    循环链表表示队列

    在循环链表表示队列中,还可以实现队列的创建操作,创建一个链队列,并将数组中的元素赋给链队列。创建操作可以通过以下步骤来实现: 1. 创建一个空链表结点,作为队列的头结点。 2. 将数组中的元素逐个插入到队列...

    用循环链表实现队列操作

    用循环链表实现队列操作 讲解详细 通过多次编译 可以运行的

    链表实现队列

    在Vs2010环境下,我们可以使用C++语言来实现链表队列。首先,我们需要定义一个节点结构体,包含数据成员和指向下一个节点的指针: ```cpp struct ListNode { int data; ListNode* next; }; ``` 然后,定义队列类...

    链表,队列,二叉树的应用实现

    常见的队列实现有循环队列和链式队列。在软件开发中,队列常用于任务调度、消息传递和缓冲区管理等场景。例如,操作系统中的进程调度就是用队列来管理等待执行的任务。 二叉树则是另一种非线性的数据结构,每个节点...

    模板线性表,链表,队列,栈的实现(C++实现)

    本文将深入探讨四个基本数据结构的C++实现:模板线性表、链表、队列和栈。这些数据结构在软件开发中扮演着至关重要的角色,它们提供了多种处理数据的方法,使得算法设计和程序优化变得更加灵活。 1. **模板线性表**...

    队列的链表与数组分别实现

    本篇文章将深入探讨如何用数组和链表两种数据结构来实现队列。 ### 数组实现队列 数组实现队列的优势在于访问速度快,因为数组是连续存储的,可以通过下标直接访问元素。但数组的大小是固定的,所以在创建时需要...

    堆栈链表与队列链表的基本操作

    学习和理解堆栈和队列的链表实现对理解数据结构和算法至关重要,它们在递归、回溯、任务调度、内存管理等许多领域都有应用。通过编写和运行这些程序,可以加深对这些概念的理解,并提升编程能力。在实际开发中,掌握...

    用单链表和队列实现归并排序

    在标题“用单链表和队列实现归并排序”中,我们可以理解到这个实现是利用了链表和队列的数据结构。链表是一种线性数据结构,其中的元素在内存中不是顺序存储的,而是通过指针链接。队列则是一种先进先出(FIFO)的...

    链表实现栈和队列(经典程序)

    本话题主要探讨如何使用链表来实现栈和队列这两种基本的数据结构。链表是一种动态数据结构,它允许在运行时添加或删除元素,而无需预先确定其大小。这使得链表成为实现栈和队列的理想选择。 栈是一种后进先出(LIFO...

    数据结构链表,队列,栈源代码

    总的来说,理解和掌握链表、队列和栈的原理与实现是提升编程技能的关键步骤,它们是许多算法和复杂数据结构的基础。通过严蔚敏版的源代码,学习者可以更深入地了解这些概念在实际编程中的应用,从而提升解决问题的...

    数组、链表、队列、栈的区别和联系 数组和链表.pdf

    队列可以使用数组或链表实现,数组实现的队列可以快速地随机访问元素,而链表实现的队列可以快速地插入或删除元素。 栈是一种后进先出(Last-In-First-Out,LIFO)的数据结构,元素的添加和删除都是从栈顶进行的。...

    用于微控制器 的轻量级链表类型队列实现_C++_代码_相关文件_下载

    用于微控制器的轻量级链表类型队列实现。编写为 C++ 模板类。 如何使用 在代码中包含头文件: #include 然后根据需要创建队列,示例: 要创建一个int队列,能够容纳 20 个项目: ArduinoQueue<int> intQueue(20)...

    数据结构算法习题答案带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针).docx

    这两种实现方式均使用了带头结点的循环链表来表示队列,并且只设置了一个指向队尾元素的指针,实现了基本的队列操作如初始化、入队和出队等。通过上述分析,可以清晰地理解如何使用循环链表表示队列以及如何进行基本...

    用链表实现队列栈 包括虚函数、指针

    本程序以链表为基础,实现队列和栈这两种重要的数据结构,并利用C++的面向对象特性,如虚函数和指针,来提高代码的灵活性和可扩展性。 首先,链表是一种动态数据结构,它的元素(节点)不连续存储在内存中,而是...

    数据结构的链表,队列,栈(c)

    在C语言中,可以通过数组或链表实现队列。当队列满时,可以使用循环队列避免溢出问题。 最后,栈是一种后进先出(LIFO,Last In First Out)的数据结构,类似于堆叠物品。栈的操作主要有两个:压栈(将元素放入栈顶...

    循环链表队列 循环数组队列的代码实现

    本文将深入探讨两种队列实现方式:循环链表队列和循环数组队列,并通过代码示例进行详细解析。 #### 循环链表队列 循环链表队列是一种使用链表实现的队列,其中最后一个节点的指针指向第一个节点,形成一个循环。...

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

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

Global site tag (gtag.js) - Google Analytics