数据结构 —栈结构

0# 什么是栈
在程序设计中,我们都会接触过“堆栈”的概念,其实堆栈是两个不同的概念,栈是一种特殊的数据结构,在处理重要数据的现场保护有着重要的意义。
栈结构是从数据的运算分类的,塔也是一种线性结构。如图。在这里插入图片描述
举个例子,栈好比如我们生活的堆箱子,先来的货物放在下面,后来的方正上面,这是栈的特性,先进后出。
在栈结构中只有栈顶的元素可以访问,这样栈结构的数据运行非常简单,一般栈结构的基本操作有两个:

  1. 入栈,将数据保存到栈顶,进行入栈操作前,先修改栈顶引用,使其向上移动一个元素单位,然后将数据保存到栈顶所指位置。
  2. 出栈,将栈顶数据数据弹出,通过修改栈顶引用,使其指向下一个元素。

顺序栈案例


    class Data
    {
        public string name;
        public int age;
    }

    class StackType
    {
        static int MAXLEN = 50;
        Data[] data = new Data[MAXLEN + 1];
        int top;                                //栈顶

        //初始化
        public StackType STInit()
        {
            StackType ST;
            if ((ST = new StackType()) != null)
            {
                ST.top = 0;
                return ST;
            }
            return null;
        }

        //判断是否空栈
        public bool STIsEmpty(StackType ST)
        {
            if (ST.top == 0)
            {
                return true;
            }
            return false;
        }

        //判断是否满栈
        public bool STIsFull(StackType ST)
        {
            if (ST.top == MAXLEN)
            {
                return true;
            }
            return false;
        }

        //清空
        public void STCLent(StackType ST)
        {
            ST.top = 0;
        }

        //释放栈
        public void STFree(StackType ST)
        {
            if (ST != null)
            {
                ST = null;
            }
        }

        //入栈
        public int PushST(StackType ST, Data data)
        {
            if (ST.top >= MAXLEN)
            {
                Console.WriteLine("栈满");
                return 0;
            }

            ST.top++;
            ST.data[ST.top] = data;
            return 1;
        }

        //出栈
        public Data PooST(StackType ST)
        {
            if (ST.top == 0)
            {
                Console.WriteLine("栈空");
                return null;
            }
            ST.top--;
            return ST.data[ST.top];
        }
    }

发布了37 篇原创文章 · 获赞 11 · 访问量 6301

猜你喜欢

转载自blog.csdn.net/weixin_42422809/article/details/88406091