文档章节

C#--循环队列的顺序存储

以诺
 以诺
发布于 2013/03/27 12:42
字数 205
阅读 137
收藏 0
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;
        /// <summary>
        /// 构造函数,初始化队列长度
        /// </summary>
        /// <param name="maxsize"></param>
        public Queue(int maxsize)
        {
            this.front = 0;
            this.rear = 0;
            this.maxsize = maxsize;
            this.data = new string[maxsize];
        }
        /// <summary>
        /// 返回队列长度
        /// </summary>
        /// <returns></returns>
        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();
        }
    }

}

© 著作权归作者所有

共有 人打赏支持
以诺
粉丝 2
博文 12
码字总数 4205
作品 0
郑州
程序员
私信 提问
实现一个队列

队列的定义: 队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。 (1)允许删除的一端称为队头(Front)。 (2)允许插入的一端称为队尾(Rear)。 (3)当队列...

一贱书生
2016/11/17
2
0
数据结构-栈&队列&Deque实现比较

栈 栈: 限定仅在表尾进行插入和删除操作的线性表; 后进先出(LIFO)。 在表尾进行操作,表尾是栈顶;最新进栈的元素在栈底。 栈的ADT Stack_ADT 进栈&出栈 栈 栈的存储结构实现 顺序栈 栈也...

IAM四十二
2017/10/22
0
0
数据结构之队列

本来此篇是准备总结堆栈顺序表的一些应用,但是觉得先接着上篇把队总结完,然后再将应用总结。ok,废话不多数,我们先来看队定义: 和栈相反,队列是一种先进先出的线性表。它只允许在表的一...

捕风的xiao_k
2017/05/10
0
0
数据结构学习笔记(特殊的线性表:栈与队列)

                     栈与队列 栈是限定仅在表尾(栈顶)进行插入和删除操作的线性表(后进先出)。 队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表...

希希里之海
2017/05/07
0
0
数据结构基础(7) --循环队列的设计与实现

队列 队列简称队, 也是一种操作受限的线性表, 只允许在表的一端进行插入, 而在表的另一端进行删除.其特点为”先进先出(FIFO)”,故又称为先进先出的线性表,简单队列如图所示: 循环队列 顺序队...

翡青
2015/01/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

 tomcat启动问题

tomcat启动问题: 解决方法:tomcat bin目录下 新建setenv.sh文件 文件上加入 export CATALINA_OPTS='-Djava.awt.headless=true' 该方法对tomcat8以上有用...

west_coast
5分钟前
0
0
《从0开始学架构》学习笔记索引

一、架构设计相关概念及复杂度来源 二、架构设计三原则 三、架构设计流程 ... 完整课程(微信扫码):

whoru
19分钟前
1
0
新的尝试!ComponentOne WinForm 和 .NET Core 3.0

在微软 Build 2018 开发者大会上,.NET 团队公布了 .NET Core 的下一个主要版本 .NET Core 3.0 的规划蓝图:.NET Core 3将开始支持Windows桌面应用程序,包括Windows Form、Windows Present...

葡萄城技术团队
20分钟前
0
0
Try .NET & Github Gist

Try .NET Try .NET 是微软最近推出的在线 C# 运行环境,不用安装 Visual Studio 等,就可以直接上手写 C# 代码. 可以先进来写两行代码看看 https://try.dot.net/ 对于初学者/代码分享而言是一个...

taadis
22分钟前
19
0
PyCharm入门教程——掌握PyCharm键盘快捷键

PyCharm最新版本下载 JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web...

电池盒
27分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部