队列的实现(二) 链式队列的实现

链式队列:使用链表式的节点相连接,所以就不用考虑空间的问题了。

public class QueueList {
    private class Node{
        Node pre,next;
        int value;
    }
    Node front ,rear;
    int a,b;
    int size = 0;
    QueueList(){
        front.next = null;
        front.pre = null;
        front.value = 0;
        rear = front;
    }
    public void add(Node node){
        rear.next = node;
        node.pre = rear;
        rear = node;
        size++;
    }
    public Node remove(){
        if(front == rear)
            return null;
        else{
            Node node = new Node();
            node = front;
            front = front.next;
            size--;
            return node;
        }
    }
    public int size(){
        return size;
    }
}
时间: 2024-11-08 09:05:54

队列的实现(二) 链式队列的实现的相关文章

队列的实现:链式队列

队列常常也使用链式存储的方式来实现.为了方便操作,同顺序存储一样,我们要维护一个头指针和一个尾指针.如下图: 在链式队列中显然不会出现假溢出的情况.但在出队时,要及时释放内存.由于在队列的实现:顺序队列中,对队列的描述已经很清楚了.就闲话不多说,直接上代码: 类定义和类实现 #include<iostream> #include<iomanip> using namespace std; typedef int ELemType; class QNode //节点类型 { publ

链式队列(Linked Queue)

链式队列(Linked Queue) 1. 链式队列的概念 1.1 链式队列的定义 链式队列是基于链表的存储表示实现的队列. 1.2 链式队列中各元素的逻辑及存储关系 链式队列可以采用单链表作为其存储表示,因此,可以在链式队列的声明中用单链表定义它的存储空间. 链式队列的队头指针指向单链表的第一个结点,队尾指针指向单链表的最后一个结点. 注:链式队列的队头元素存放在单链表的第一个结点内,若要从队列中退出一个元素,必须从单链表中删去第一个结点,而存放着新元素的结点应插在队列的队尾,即单链表的最后一

数据结构Java实现07----队列:顺序队列&amp;顺序循环队列、链式队列、顺序优先队列

数据结构Java实现07----队列:顺序队列&顺序循环队列.链式队列.顺序优先队列 一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其另一端进行删除操作. 队列中允许进行插入操作的一端称为队尾,允许进行删除操作的一端称为队头.队列的插入操作通常称作入队列,队列的删除操作通常称作出队列. 下图是一个依次向队列中插入数据元素a0,a1,...,an-

链式队列的C++实现

链式队列的C++实现 一.数据结构 struct QNode //定义队列结点的数据结构 { QNode *next; //指针域,指向下一个结点 double data; //数据域,存储队列信息 }; struct LinkQueue //定义队列的数据结构 { QNode *front; //队首指针,指向QNode类型的指针 QNode *rear; //队尾指针 }; void InitQueue(LinkQueue &Q) //构造一个空的队列 int IsEmpty(LinkQue

数据结构之---C语言实现链式队列

//链式队列的存储 //杨鑫 #include <stdio.h> #include <stdlib.h> typedef int QElemType; //定义节点 typedef struct QNode { QElemType data; struct QNode *next; }QNode, *QueuePtr; //定义指针 typedef struct { QueuePtr front; QueuePtr rear; }LinkQueue; //插入元素e进入队列 vo

【数据结构-队列】链式队列

关于链式队列 链式队列又称为链队,是使用单链表实现的,需要一个头指针一个尾指针 结构图: 链队需要的元素组成 /*链式队列的每一个节点*/ struct node{ int data;//存储数据 struct node *next;//指向下一个节点的指针 }; /*链式队列*/ typedef struct{ struct node *head;//头指针 struct node *tail;//尾指针 }LinkedQueue; 创建一个带头节点的空队列 创建一个节点p 将p节点的next

有序链式队列

  编写头文件 struct queue { int num;            //代表数据 int high;           //优先级1111 struct queue *pNext;//存储下一个节点的地址 }; typedef  struct queue Queue;                           //简化队列 Queue * init(Queue *queueHead);                        //初始化 Queue *

C++链式队列

LinkQueue: //链式队列 #include<iostream> using namespace std; typedef int elemType; struct QNode { elemType data; QNode *next; }; struct LinkQueue { QNode *front; QNode *rear; }; //初始化 void InitQueue(LinkQueue *q) { q->front = q->rear = new QNode;

数据结构基础(14) --链式队列的设计与实现

链式队列是基于单链表的一种存储表示, 其形状如下图所示: (队列的队头指针指向单链表的第一个结点, 队尾指针指向单链表的最后一个结点, 注意没有无用的空[头/尾]节点) 用单链表表示的链式队列特别适合于数据元素变动比较大的情况, 而且不存在队列满而产生溢出的情况; 链式队列结点构造: [这次我们将节点构造成了类LinkQueue的嵌套类] struct ChainNode { ChainNode(const Type &_data, ChainNode *_next = NULL) :data(