C#資料結構之隊列

來源:互聯網
上載者:User
在實現堆棧類之後,我們來實現隊列類,其實隊列也是鏈表的擴充,它其實是一種特殊的鏈表,如堆棧一樣,它和堆棧的不同在於,堆棧採用的是先進後出原則,而對列採用的是先進先出原則。什麼是先進後出呢?在日常生活中也到處可見它,比如:買火車票,大家都要排隊,先來的先買票,後來的在後面排隊,在隊伍中隨便插入是不合法的。等到前面買完之後,自己才可以買票。當然這隻是個小執行個體,隊列在程式設計中是基礎的編程技術,現在我們來用才C#實現它。如:是隊列入隊和出隊的操作過程。

    1  在入隊過程中: 就是在隊列的尾部添加資料,隊列資料個數加一,尾指標後移。

    2 在出隊過程中:就是在隊列的頭部取的資料後,然後刪除該資料,頭指標後移。

 在下面的程式中用到前面我們編寫的list  類 ( C#資料結構篇(1 鏈表類)),對鏈表進行操作就可以輕鬆的實現隊列,具體實現如下:

using System;

namespace List
{
 /// <summary>
 /// 隊列類
 /// </summary>
 
 public class CQueue
 {
  private Clist m_List;
       
  public CQueue()
  {
   //建構函式

   //這裡使用到前面編寫的List
    m_List=new Clist ();
               
  }

  
  /// <summary>
  /// 入隊
  /// </summary>
    
  
  public void EnQueue(int DataValue)
  {
   //功能:排入佇列,這裡使用List 類的Append 方法:

   //尾部添加資料,資料個數加1

           m_List.Append (DataValue);
  }

  /// <summary>
  /// 出隊
  /// </summary>
  
  public int DeQueue()
  {
   //功  能:出隊

   //傳回值: 2147483647 表示為空白隊列無返回

   int QueValue;
   
   if (! IsNull())
   {  
    //不為空白的隊列

    //移動到隊列的頭

    m_List.MoveFrist ();

     //取得當前的值

     QueValue= m_List.GetCurrentValue ();

     //刪除出隊的資料

      m_List.Delete ();

      return QueValue;

   }

   return 2147483647;

  }

  /// <summary>
  /// 判斷隊列是否為空白
  /// </summary>
  
  public bool IsNull()
  {
   //功能:判斷是否為空白的隊列

   return  m_List.IsNull ();

  }

  /// <summary>
  /// 清空隊列
  /// </summary>
  
  public void Clear()
  {   

           //清空鏈表
            m_List.Clear ();

  }

  /// <summary>
  /// 取得隊列的資料個數
  /// </summary>
  
  public int QueueCount
  {
   get
   {  
    //取得隊列的個數
    return m_List.ListCount ;
   }
  }

 }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.