c#实现队列(Queue)

时间:2021-11-29 14:58:07

 1  public   class  Node
 2      {
 3           private  Node _node;
 4           private   object  _value;
 5 
 6           public  Node( object  v)
 7          {
 8               this ._value  =  v;
 9               this ._node  =   null ;
10          }
11 
12           public  Node NodeNext
13          {
14               get  {  return  _node; }
15               set  { _node  =  value; }
16          }
17           public   object  Value
18          {
19               get  {  return  _value; }
20          }
21 
22      }

 1  public   class  Queue
 2      {
 3           public  Queue() { }
 4           private   int  count = 0 ; // 队列中节点的个数
 5           private  Node nOutNode = null ; // 输出端
 6           private  Node oInNode = null ; // 输入端 
 7   
 8           /// <summary>  
 9           ///  队列中节点总数 
10           ///   </summary>  
11           public   int  Count 
12          { 
13               get return  count;} 
14          } 
15           
16           ///   <summary>  
17           ///  入队列 
18           ///   </summary>  
19           ///   <param name="o"> 进队对象 </param>  
20           public   void  Push( object  o) 
21          { 
22              Node nextNode  =   new  Node(o);
23               if  (oInNode  !=   null )
24              {
25                  oInNode.NodeNext  =  nextNode;
26              }
27 
28              oInNode  =  nextNode;
29 
30               if  (nOutNode  ==   null )
31              {
32                  nOutNode  =  oInNode;
33              }
34              count ++
35          } 
36           ///   <summary>  
37           ///  出队 
38           ///   </summary>  
39           ///   <returns> 队列当前节点的值 </returns>  
40           public   object  Pop() 
41          { 
42               if (nOutNode == null
43              { 
44                   throw   new  Exception( " 队列空! " ); 
45              } 
46               else  
47              { 
48                   object  objValue  =  nOutNode.Value; 
49                  nOutNode  =  nOutNode.NodeNext; 
50                  count --
51                   return  objValue; 
52              } 
53          }
54 
55 
56      }

源代码: /Files/HeroBeast/Queue.rar