C#資料結構篇(二 堆疊) (轉)
資料結構篇(二)堆疊
作者: 寒羽狼 (Dark_Slaer_Tang)
煙快沒有了,別人都說煙有害,但對與我可是必不可少的,呵呵。。,抽一根菸就寫出來了,好了,再加把勁,我們再完成堆疊,其實堆疊和線性表沒什麼大的區別,堆疊其實是一種特殊的線性表,使用Push 壓輸入資料,Pop 彈出資料,才用,先進後出的原則,就這麼簡單。前面已經寫好了List 類,在這裡我們可以它。程式碼如下:
using System;
namespace List
{
///
/// 堆疊類
///
public class CStack
{
//呼叫連結串列類
private Clist m_List;
public CStack()
{
//構造
m_List=new Clist();
}
///
/// 壓入堆疊
///
public void Push(int PushValue)
{
//引數: int PushValue 壓入堆疊的資料
m_List.Append (PushValue);
}
///
/// 彈出堆疊資料,如果為空,則取得 2147483647 為 int 的最大值;
///
public int Pop()
{
//功能:彈出堆疊資料
int PopValue;
if (!IsNullStack())
{
//不為空堆疊
//移動到頂
MoveTop();
//取得彈出的資料
PopValue=GetCurrentValue();
//刪除
Delete();
return PopValue;
}
// 空的時候為 int 型別的最大值
return 2147483647;
}
///
/// 判斷是否為空的堆疊
///
public bool IsNullStack()
{
if ( m_List.IsNull() )
return true ;
return false ;
}
///
/// 堆疊的個數
///
public int StackListCount
{
get
{
return m_List.ListCount ;
}
}
///
/// 移動到堆疊的底部
///
public void MoveBottom()
{
m_List.MoveFrist ();
}
///
/// 移動到堆疊的Top
///
public void MoveTop()
{
m_List.MoveLast ();
}
///
/// 向上移動
///
public void MoveUp()
{
m_List.MoveNext();
}
///
/// 向上移動
///
public void MoveDown()
{
m_List.MovePrevious() ;
}
///
/// 取得當前的值
///
public int GetCurrentValue()
{
return m_List.GetCurrentValue ();
}
///
/// 刪除取得當前的結點
///
public void Delete()
{
m_List.Delete ();
}
///
/// 清空堆疊
///
public void Clear()
{
m_List.Clear();
}
}
}
使用先前的連結串列類,就可以輕鬆的完成堆疊類,除了基本的,Pop,Push 方法外,還提供,MoveBottom,MoveTop,MoveUp,MoveDown ,來訪問堆疊中的資料,使用GetCurrentValue方法,來取得資料的值,可以更多的操作,呵呵,就這麼簡單。To Be Continue.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992491/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【資料結構第二週】堆疊知識點整理資料結構
- 堆疊的應用——用JavaScript描述資料結構JavaScript資料結構
- 使用C#實現資料結構堆C#資料結構
- C#資料結構篇(一連結串列類) (轉)C#資料結構
- 資料結構與演算法(C#實現)系列---演示篇(二) (轉)資料結構演算法C#
- 資料結構-二叉樹、堆、圖資料結構二叉樹
- 資料結構-堆資料結構
- 資料結構——堆資料結構
- 資料結構 - 堆資料結構
- [資料結構]堆資料結構
- C#堆疊(Stack)C#
- 資料結構 9 基礎資料結構 二叉堆 瞭解二叉堆的元素插入、刪除、構建二叉堆的程式碼方式資料結構
- 資料結構 - 堆(Heap)資料結構
- 資料結構與演算法——二叉堆資料結構演算法
- C#中堆和堆疊的區別C#
- 資料結構之堆(Heap)資料結構
- C++ 資料結構-堆C++資料結構
- 【資料結構】堆疊(順序棧、鏈棧)的JAVA程式碼實現資料結構Java
- c語言的一結構資料的堆疊實現問題薦C語言
- Python資料結構——二叉堆的實現Python資料結構
- 資料結構之堆(c++)資料結構C++
- 資料結構之索引堆(IndexHeap)資料結構索引Index
- 【資料結構】——堆及其應用資料結構
- JS 資料型別和堆疊JS資料型別
- 資料結構與演算法(C#實現)系列---樹(二) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---演示篇(一) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---演示篇(三) (轉)資料結構演算法C#
- C#資料結構-二叉樹-順序儲存結構C#資料結構二叉樹
- 【資料結構篇】認識資料結構資料結構
- 資料結構和演算法-堆資料結構演算法
- 演算法(4)資料結構:堆演算法資料結構
- 資料結構與演算法-堆資料結構演算法
- 高階資料結構-可並堆資料結構
- 資料結構和演算法面試題系列—二叉堆資料結構演算法面試題
- 資料結構與演算法(C#實現)系列---廣義樹(二) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---N叉樹(二) (轉)資料結構演算法C#
- 『演算法與資料結構』優先佇列 二叉堆演算法資料結構佇列
- JS版資料結構第二篇(佇列)JS資料結構佇列