我是靠谱客的博主 醉熏刺猬,最近开发中收集的这篇文章主要介绍链队列的实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ExpandedBlockStart.gif 代码
    // 接口
    public   interface  IQueue < T >
    {
        
int  GetLength();  // 求队列的长度
         bool  IsEmpty();  // 判断对列是否为空
         void  Clear();  // 清空队列
         void  In(T item);  // 入队
        T Out();  // 出队
        T GetFront();  // 取对头元素
    }
   
// 接口的实现
    public   class  LinkQueue < T >  : IQueue < T >
    {
        
private  Node < T >  front;  // 队列头指示器
         private  Node < T >  rear;  // 队列尾指示器
         private   int  num;  // 队列结点个数

        
// 队头属性
         public  Node < T >  Front
        {
            
get
            {
                
return  front;
            }
            
set
            {
                front 
=  value;
            }
        }
        
// 队尾属性
         public  Node < T >  Rear
        {
            
get
            {
                
return  rear;
            }
            
set
            {
                rear 
=  value;
            }
        }
        
// 队列结点个数属性
         public   int  Num
        {
            
get
            {
                
return  num;
            }
            
set
            {
                num 
=  value;
            }
        }
        
// 构造器
         public  LinkQueue()
        {
            front 
=  rear  =   null ;

            num 
=   0 ;
        }
        
// 求链队列的长度
         public   int  GetLength()
        {
            
return  num;
        }
        
// 清空链队列
         public   void  Clear()
        {
            front 
=  rear  =   null ;
            num 
=   0 ;
        }
        
// 判断链队列是否为空
         public   bool  IsEmpty()
        {
            
if  ((front  ==  rear)  &&  (num  ==   0 ))
            {
                
return   true ;
            }
            
else
            {
                
return   false ;
            }
        }
        
// 入队
         public   void  In(T item)
        {
            Node
< T >  q  =   new  Node < T > (item);
            
if  (rear  ==   null )
            {
                rear 
=  q;
            }
            
else
            {
                rear.Next 
=  q;
                rear 
=  q;
            }
            
++ num;
        }
        
// 出队
         public  T Out()
        {
            
if  (IsEmpty())
            {
                Console.WriteLine(
" Queue is empty! " );
                
return   default (T);
            }
            Node
< T >  p  =  front;
            front 
=  front.Next;
            
if  (front  ==   null )
            {
                rear 
=   null ;
            }
            
-- num;
            
return  p.Data;
        }
        
// 获取链队列头结点的值
         public  T GetFront()
        {
            
if  (IsEmpty())
            {
                Console.WriteLine(
" Queue is empty! " );
                
return   default (T);
            }
            
return  front.Data;
        }
    }

 

转载于:https://www.cnblogs.com/hubcarl/archive/2010/04/07/1706373.html

最后

以上就是醉熏刺猬为你收集整理的链队列的实现的全部内容,希望文章能够帮你解决链队列的实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部