加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

算法系列15天速成 第九天 队列

发布时间:2020-03-14 19:10:13 所属栏目:安全 来源:站长网
导读:可能大家都知道,线性表的变种非常非常多,比如今天讲的“队列”,灰常有意思啊


/// <summary>
/// 获取队列长度
/// </summary>
/// <typeparam></typeparam>
/// <param></param>
/// <returns></returns>
        public int SeqQueueLen<T>(SeqQueue<T> seqQueue)
        {
            return seqQueue.tail - seqQueue.head;
        }

然后上一下总的运行代码:

复制代码 代码如下:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SeqQueue
{
    public class Program
    {
        static void Main(string[] args)
        {
            SeqQueue<Student> seqQueue = new SeqQueue<Student>();

SeqQueueClass queueManage = new SeqQueueClass();

Console.WriteLine("目前队列是否为空:" + queueManage.SeqQueueIsEmpty(seqQueue) + "n");

Console.WriteLine("将ID=1和ID=2的实体加入队列");
            queueManage.SeqQueueIn(seqQueue, new Student() { ID = 1, Name = "hxc520", Age = 23 });
            queueManage.SeqQueueIn(seqQueue, new Student() { ID = 2, Name = "一线码农", Age = 23 });

Display(seqQueue);

Console.WriteLine("将队头出队");
            //将队头出队
            var student = queueManage.SeqQueueOut(seqQueue);

Display(seqQueue);

//获取队顶元素
            student = queueManage.SeqQueuePeek(seqQueue);

Console.Read();
        }
        //展示队列元素
        static void Display(SeqQueue<Student> seqQueue)
        {
            Console.WriteLine("******************* 链表数据如下 *******************");

for (int i = seqQueue.head; i < seqQueue.tail; i++)
                Console.WriteLine("ID:" + seqQueue.data[i].ID +
                                  ",Name:" + seqQueue.data[i].Name +
                                  ",Age:" + seqQueue.data[i].Age);

Console.WriteLine("******************* 链表数据展示完毕 *******************n");
        }
    }

#region 学生数据实体
    /// <summary>
/// 学生数据实体
/// </summary>
    public class Student
    {
        public int ID { get; set; }

public string Name { get; set; }

public int Age { get; set; }
    }
    #endregion

#region 队列的数据结构
    /// <summary>
/// 队列的数据结构
/// </summary>
/// <typeparam></typeparam>
    public class SeqQueue<T>
    {
        private const int maxSize = 100;

public int MaxSize
        {
            get { return maxSize; }
        }

/// <summary>
/// 顺序队列的存储长度
/// </summary>
        public T[] data = new T[maxSize];

//头指针
        public int head;

//尾指针
        public int tail;

}
    #endregion

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读