文档章节

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

以诺
 以诺
发布于 2013/03/27 12:42
字数 205
阅读 132
收藏 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
数据结构之队列

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

捕风的xiao_k
2017/05/10
0
0
数据结构-栈&队列&Deque实现比较

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

IAM四十二
2017/10/22
0
0
数据结构学习笔记(特殊的线性表:栈与队列)

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

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

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

翡青
2015/01/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

初级开发-编程题

` public static void main(String[] args) { System.out.println(changeStrToUpperCase("user_name_abc")); System.out.println(changeStrToLowerCase(changeStrToUpperCase("user_name_abc......

小池仔
今天
6
0
现场看路演了!

HiBlock
昨天
16
0
Rabbit MQ基本概念介绍

RabbitMQ介绍 • RabbitMQ是一个消息中间件,是一个很好用的消息队列框架。 • ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的s...

寰宇01
昨天
10
0
官方精简版Windows10:微软自己都看不过去了

微软宣布,该公司正在寻求解决方案,以减轻企业客户的Windows 10规模。该公司声称,企业客户下载整个Windows 10文件以更新设备既费钱又费时。 微软宣布,该公司正在寻求解决方案,以减轻企业...

linux-tao
昨天
19
0
TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
昨天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部