当前位置:编程学习 > C#/ASP.NET >>

栈及其在.NET FrameWork中的源码分析

1.栈是操作限定在表的尾端进行的线性表,表尾要进行插入,删除等操作。我们把表尾称为栈顶,另一端叫做栈底。栈的操作是按照后进先出(LIFO:Last
In First Out)或是先进后出(FILO)的原则进行的,所以也叫做LIFO表或FILO表。
clip_image002

2.我们将栈的几个常用操作用接口表示如下:

public interface IStack<T>
{
        int GetLength();
       bool IsEmpty();
        void Clear();
        void Push(T item);//入栈
        T Pop();//出栈
        T GetTop()
}
3.使用连续空间来存储栈中的元素我们称为顺序栈,我们就实现一个简单的顺序栈,代码如下:
public class SeqStack<T>:IStack<T>
    {
        private int maxsize;
        private T[] data;
        private int top;
 
       public T this[int index]
        {
            get { return data[index];}
            set { data[index] = value; }
        }
 
        public int Maxsize
        {
            get { return maxsize; }
            set { maxsize = value; }
        }
        public int Top
        {
            get { return top; }
            set { top = value; }
        }
 
        public SeqStack(int size)
        {
            data = new T[size];
            maxsize = size;
            top = -1;
        }
 
        public int GetLength()
        {
            return top + 1;
        }
        public void Clear()
        {
            top = -1;
        }
        public bool IsEmpty()
        {补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,