• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

数据结构(C#):队列

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
队列的特点是先进先出,如同日常生活中的排队。队列有加入队尾,从队头删除元素,取得队尾元素,取得队头元素,取得队列长度,判断队列是否为空等操作。
队列也可以可以用顺序表、链表实现,但队列最好不要用顺序表实现,因为元素加入队列和删除元素中的一种操作总会引起全部元素的移动,效率极低(循环队列除外)。
队列的实现非常简单,下面用前面介绍的单链表实现。
代码:
/*
* File     :   Queue.cs
* Author   :   Zhenxing Zhou
* Date     :   2008-12-07
* Blog     :  
http://www.xianfen.net/
*/
namespace Xianfen.Net.DataStructure
{
    
public class Queue<T>
    {
        
protected SingleLinkedList<T> m_List;

        
public bool IsEmpty
        {
            
get { return m_List.IsEmpty; }
        }

        
public int Count
        {
            
get { return m_List.Count; }
        }

        
public Queue()
        {
            m_List
= new SingleLinkedList<T>();
        }

        
public Queue(T t)
        {
            m_List
= new SingleLinkedList<T>(t);
        }

        
public T DeQueue()
        {
            T t
= m_List.GetTail();
            m_List.RemoveTail();

            
return t;
        }

        
public void EnQueue(T t)
        {
            m_List.AddHead(t);
        }

        
public T GetFront()
        {
            
return m_List.GetTail();
        }

        
public T GetRear()
        {
            
return m_List.GetHead();
        }
    }
}

2.应用示例
也是一个非常无聊的演示程序:显示随机生成整数的奇偶数对。
Queue<int> q1 = new Queue<int>();
Queue
<int> q2 = new Queue<int>();
Random rnd
= new Random();

for (int i = 0; i < 20; i++)
{
    
int value = rnd.Next();

    
if (value % 2 != 0)
    {
        q1.EnQueue(value);
    }
    
else
    {
        q2.EnQueue(value);
    }
}

while (!q1.IsEmpty && !q2.IsEmpty)
{
    Console.WriteLine(
"奇偶数对:{0},{1}", q1.DeQueue(), q2.DeQueue());
}
某次运行结果:
奇偶数对:1001667163,570500228
奇偶数对:703882551,1134267770
奇偶数对:1938115369,486438246
奇偶数对:1471693833,717831946
奇偶数对:429728181,678751398
奇偶数对:1894142101,2052360200
奇偶数对:1289719185,1630602020

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#类(17)对象初始化器发布时间:2022-07-13
下一篇:
C#之正则表达式、异常处理和委托与事件发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap