C# 栈的实现
早前寫得棧的實現,基本功能都有。
代碼:
/// <summary>/// 棧/// </summary>public class Stack{private object[] data; //用data數組來儲存數據private int size; //棧的大小private int top; //top指針public object this[int loc]{get { return loc >= 0 && loc <= top ? data[loc] : null; }}/// <summary>/// 當前棧中元素個數/// </summary>public int Length{get { return this.top + 1; }}/// <summary>/// 構造函數/// </summary>/// <param name="size"></param>public Stack(int size){if (size>=0){this.data = new object[size];this.size = size;this.top = -1; //初始top指針賦-1 }else{this.data = null;this.size = 0;this.top = -1;}}/// <summary>/// 是否空/// </summary>/// <returns></returns>public bool isEmpty(){return this.top == -1;}/// <summary>/// 是否滿/// </summary>/// <returns></returns>public bool isFull(){return this.top == this.size - 1;}/// <summary>/// 壓棧/// </summary>/// <param name="elem"></param>public void Push(object elem){if (this.isFull()){throw new Exception("Stack is full!");}this.top++;this.data[this.top] = elem;}/// <summary>/// 出棧/// </summary>/// <returns></returns>public object Pop(){if (this.isEmpty()){throw new Exception("Stack is empty!");}object elem = this.data[this.top];this.top--;return elem;}/// <summary>/// 獲取棧頂元素/// </summary>/// <returns></returns>public object getTop(){if (this.isEmpty()){throw new Exception("Stack is empty!");}return this.data[this.top];}/// <summary>/// 清空/// </summary>public void Clear(){this.top = -1;}}?
?
?
轉載于:https://www.cnblogs.com/kangs/archive/2013/06/01/3112793.html
總結
- 上一篇: functionclass[LeetCo
- 下一篇: hdu 2444(二分图的判断以及求最大