循环队列的顺序存储

原创 2015年11月17日 17:24:46

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{ //循环队列的顺序存储
public class Queue
{
public int front { get; set; }
public int rear { get; set; }
public string[] data { get; set; }
public int maxsize;
///
/// 构造函数,初始化队列长度
///
///
public Queue(int maxsize)
{
this.front = 0;
this.rear = 0;
this.maxsize = maxsize;
this.data = new string[maxsize];
}
///
/// 返回队列长度
///
///
public int QueueLength()
{

        return (this.rear - this.front + maxsize) % maxsize;
    }
    /// <summary>
    /// 插入队列节点
    /// </summary>
    /// <param name="queueNode"></param>
    public void InsertQueueNode(string queueNode)
    {
        if ((this.rear + 1) % this.maxsize == this.front)
            return;
        this.data[this.rear] = queueNode;
        this.rear = (this.rear + 1) % this.maxsize;
    }
    /// <summary>
    /// 删除一个节点
    /// </summary>
    public void DeleteQueueNode()
    {
        if (this.rear == this.front)
        {
            return;
        }
        this.front = (this.front + 1) % this.maxsize;
    }
    /// <summary>
    /// 显示队列
    /// </summary>
    public void ShowQueue()
    {
        if (this.rear == this.front)
        {
            return;
        }
        while((this.front+1)%this.maxsize!=this.rear){

            Console.WriteLine(this.data[this.front]);
            this.front=(this.front+1)%this.maxsize;
        }
        Console.WriteLine(this.data[this.front]);
    }
}


//测试
class Program
{
    static void Main(string[] args)
    {
        Queue queue = new Queue(8);
        queue.InsertQueueNode("0");
        queue.InsertQueueNode("1");
        queue.InsertQueueNode("2");
        queue.InsertQueueNode("3");
        queue.InsertQueueNode("4");
        queue.InsertQueueNode("5");
    //    queue.DeleteQueueNode();
        queue.ShowQueue();
        Console.ReadKey();
    }
}

}

版权声明:

循环队列-顺序存储-c语言实现

/* 循环队列-线性表-顺序结构 */ #include#define OK 1; #define ERROR 0; #define MAXSIZE 20 typedef int QEle...

C++习题——循环队列(顺序存储)

没有多少花哨的东西,也不知道自己写的到底是有多少符合现在的“编码规范”,一切都是在学习之中,望看到的前辈能够指出不足。Cirque.h#pragma once #include const int ...
  • showgp
  • showgp
  • 2016年02月27日 22:12
  • 258

循环队列操作的实现-顺序存储结构

#include #include #define maxsize 50 using namespace std;//循环队列 typedef struct{ int data[maxsi...

C++类模板 实现循环队列的顺序存储结构算法 《数据结构》(北京科海) 部分摘抄 自己编写实现

循环队列的顺序存储结构       这里需说明一点:满队列时实际仍有一个元素的空间未使用,(rear+1)%maxSize == front 为满队列判断条件。若不留这个元素空间,则队尾指针rear...

数据结构学习之循环队列(顺序存储)

【摘要】队列特性:先进先出(FIFO)——先进队列的元素先出队列。来源于我们生活中的队列(先排队的先办完事)。 这样有个缺陷,空间利用率不高,所以我们直接学习循环队列(基于连续内存的)。 ...

※数据结构※→☆线性表结构(queue)☆============优先循环队列 顺序存储结构(queue priority circular sequence)(十三)

优先队列(priority queue)         普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删...

循环队列的实现(顺序存储方式)

用一个结构体模拟循环队列,其中定义一个数组存储队列元素,用两个下标来指示队头和队尾的位置,用一个整型数记录队列元素个数。 #include   #include   //定义函数结果状态码  ...

数据结构:队列的顺序存储结构(循环队列)

队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。是一种先进先出的线性表(FIFO)。允许插入的一端称为队尾,允许删除的一端称为队头。我们在《栈的顺序存储结构》中发现,栈操...

数据结构:队列的顺序存储结构(循环队列)

队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。是一种先进先出的线性表(FIFO)。允许插入的一端称为队尾,允许删除的一端称为队头。我们在《栈的顺序存储结构》中发现,栈操...

队列的顺序存储结构之循环队列

队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 队列是一种先进先出(First In First Out)的线性表,简称FIFO.允许插入的一端称为队尾,允许删除的一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:循环队列的顺序存储
举报原因:
原因补充:

(最多只允许输入30个字)