程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> 數據結構(C#):堆棧

數據結構(C#):堆棧

編輯:關於C#

堆棧是一種後進先出的數據結構,在某些程序設計中經常用到。堆棧只能取得棧頂元素、壓棧、出棧 、取得棧內元素數量及判斷是否為空等操作。

堆棧可以用順序表、鏈表實現,有了前面順序表及鏈表,堆棧實現非常簡單,這裡用單鏈表實現。

1.實現代碼

/*
* File   :  Stack.cs
* Author  :  Zhenxing Zhou
* Date   :  2008-12-07
* Blog   :  http://www.xianfen.net/
*/
namespace Xianfen.Net.DataStructure
{
   public class Stack<T>
   {
     protected SingleLinkedList<T> m_List;

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

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

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

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

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

       return t;
     }

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

     public void Push(T t)
     {
       m_List.AddTail(t);
     }
   }
}

2.應用示例

一個及其無聊的字符串翻轉程序。

char[] ch = "hello world!".ToCharArray();
Stack<char> s = new Stack<char>();

foreach (char c in ch)
{
   s.Push(c);
}

int idx = 0;
while (!s.IsEmpty)
{
   ch[idx++] = s.Pop();
}

Console.WriteLine(new string(ch));

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved