首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 實作循序堆疊 (2) - 完整泛型實作程式碼

     編輯:關於C語言

SeqStack<T> 完整實作

using System;
namespace DataStructures
{
    public class SeqStack<T> : IStack<T>
    {
        #region Fields & Properties
        private T[] data;
        private int maxSize;
        private int top;
        
        public T[] Data => data;
        public int MaxSize { get => maxSize; set => maxSize = value; }
        public int Top { get => top; set => top = value; }
        #endregion

        #region Constructors
        public SeqStack() : this(10) { }
        public SeqStack(int size)
        {
            data = new T[size];
            maxSize = size;
            top = -1;
        }
        #endregion

        #region Methods
        public bool IsFull => top == maxSize - 1;
        #endregion

        #region IStack<T> Members
        public T Pop()
        {
            T tmp = default(T);
            if (top == -1) { Console.WriteLine("堆疊為空"); return tmp; }
            return data[top--];
        }

        public void Push(T item)
        {
            if (top == maxSize - 1) { Console.WriteLine("堆疊已滿"); return; }
            data[++top] = item;
        }

        public T GetTop()
        {
            if (top == -1) { Console.WriteLine("堆疊為空!"); return default(T); }
            return data[top];
        }
        #endregion

        #region IDS<T> Members
        public int Count => top + 1;
        public void Clear() => top = -1;
        public bool IsEmpty => top == -1;
        #endregion
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved