循环队列的顺序存储

原创 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();
    }
}

}

版权声明:

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

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

队列的顺序存储实现—循环队列

队列(queue)是一种只允许在一端插入元素,而在另一端删除元素的线性表。它是一种先进先出(First In First Out,FIFO)的线性表。我们把允许插入的一端称为队尾,允许删除元素的一端称...
  • chewbee
  • chewbee
  • 2015年04月17日 21:37
  • 2410

循环队列-链式存储结构-c语言实现

/* 循环队列-线性表-链式结构 */ #include #include #define OK 1 #define ERROR 0typedef int Status; typedef i...
  • u010187139
  • u010187139
  • 2015年07月03日 15:57
  • 1456

循环队列---顺序存储

1、 熟练掌队列的结构特点,掌握队列的顺序存储的实现。 2、 学会使用队列解决实际问题。 2、循环队列是顺序队列的优化,可以解决假溢出问题,加大了队列的利用。...
  • weixin_40137708
  • weixin_40137708
  • 2017年10月18日 20:26
  • 40

循环队列的顺序存储实现

/*用数组实现队列的顺序存储*/ #include #define MaxSize 20 #define ElementType int #define ERROR -1 struct QNode...
  • cp1995921
  • cp1995921
  • 2017年11月20日 14:51
  • 46

队列的顺序存储——循环队列

队列是只允许在一端进行插入操作,在另一端进行删除操作的线性表。 1.允许插入(也称入队、进队)的一端称为队尾,允许删除(也称出队)的一端称为队头。 队列的这种首尾相接的顺序存储称为循环队列。 1...
  • JDOUN
  • JDOUN
  • 2016年05月16日 23:55
  • 481

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

队列的顺序存储实现 //队列的顺序存储实现 #define MaxSize struct QNode{ ElementType Data[MaxSize];//一维数组 int rear;/...
  • SpadgerZ
  • SpadgerZ
  • 2017年03月23日 21:26
  • 715

数据结构-循环队列顺序存储

目标效果: dsp0304.cpp: #include #include #include "sqqueue.h" //初始化系统 void Initialize(SqQueue &q);...
  • hester_hester
  • hester_hester
  • 2017年10月19日 22:55
  • 108

数据结构---队列---循环队列---顺序存储

#include #include #include using namespace std; #define OK 1 #define ERROR 0 #define TRU...
  • yinhua405
  • yinhua405
  • 2017年06月21日 11:15
  • 61

循环队列 顺序存储 C实现

转:http://blog.csdn.net/lzf824446/article/details/6725724 #include #include #define M 6 //数...
  • allen_fan_11
  • allen_fan_11
  • 2013年05月02日 18:24
  • 700
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:循环队列的顺序存储
举报原因:
原因补充:

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