美文网首页
顺序栈的简单实现

顺序栈的简单实现

作者: 周末的游戏之旅 | 来源:发表于2019-08-02 15:33 被阅读0次

LIFO,先进后出。也可以理解为限定性链表,限制表的操纵只在表的终端位置。

实现。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace stack
{
    class cstack<T>
    {
        int top = -1;
        T[] data;

        public int Top { get => top; set => top = value; } //栈顶指示器
        public T[] Data { get => data; set => data = value; }

        /// <summary>
        /// 构造器
        /// </summary>
        public cstack(int length)
        {
            this.Data = new T[length];
        }

        /// <summary>
        /// 入栈
        /// </summary>
        /// <param name="d"></param>
        public bool Push(T d)
        {
            //栈满
            if (top == data.Length - 1)
            {
                return false;
            }

            ++top;
            data[top] = d;
            return true;
        }

        /// <summary>
        /// 出栈
        /// </summary>
        /// <returns></returns>
        public T Pop()
        {
            //栈空
            if (top == -1)
            {
                return default(T);
            }

            T d = data[top];
            --top;
            return d;
        }

        /// <summary>
        /// 读栈顶元素
        /// </summary>
        /// <returns></returns>
        public T ReadTop()
        {
            if (top == -1) return default(T);
            return data[top];
        }

        /// <summary>
        /// 清空栈
        /// </summary>
        public void Clear()
        {
            top = -1;
        }
    }
}

Program

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace stack
{
    class Program
    {
        static void Main(string[] args)
        {
            cstack<string> cstack = new cstack<string>(10);
            cstack.Push("a");
            cstack.Push("b");
            cstack.Push("c");
            cstack.Push("d");
            cstack.Push("e");
            cstack.Push("f");
            
            //读栈顶
            Console.WriteLine(cstack.ReadTop());

            //出栈
            Console.WriteLine(cstack.Pop());
            Console.WriteLine(cstack.Pop());
            Console.WriteLine(cstack.Pop());
            Console.WriteLine(cstack.Pop());
            Console.WriteLine(cstack.Pop());
            Console.WriteLine(cstack.Pop());
        }
    }
}

相关文章

  • 顺序栈的简单实现

    栈 LIFO,先进后出。也可以理解为限定性链表,限制表的操纵只在表的终端位置。 实现。 Program

  • 数据结构基础--顺序栈

    顺序栈的概念:顺序栈是栈的顺序实现。顺序栈是指利用顺序存储结构实现的栈。采用地址连续的存储空间(数组)依次存储栈中...

  • Java数据结构和算法系列———栈

    目录 1、栈的基本概念2、Java模拟简单的顺序栈实现3、增强功能版栈4、利用栈实现字符串逆序5、利用栈判断分隔符...

  • 2018-07-09顺序表实现栈

    栈的实现 ——直接用顺序表(列表list)进行 栈结构实现 栈可以用顺序表实现,也可以用链表实现。 栈的操作 St...

  • C语言实现链栈以及基本操作

    链栈,即用链表实现栈存储结构。链栈的实现思路同顺序栈类似,顺序栈是将数顺序表(数组)的一端作为栈底,另一端为栈顶;...

  • 栈 Python实现

    栈的顺序表实现 栈的链接表实现

  • 数据结构之栈

    栈:操作受限的线性表,后进先出栈的内部存储既可以用顺序表,也可以用链表,分别称作顺序栈和链栈。 先来实现一个简单的...

  • 作业帮做-栈结构验证

    顺序栈操作验证 实验目的 掌握栈的顺序存储结构; 验证栈的操作特性; 掌握顺序栈的基本操作实现方法。 实验内容 建...

  • 堆栈

    由于栈是一个有穷线性表,所以任何实现表的方法都能实现栈(list,vector...)基本操作 顺序栈 采用顺序存...

  • C++语言实现顺序栈

    C++语言实现顺序栈 在写C语言实现顺序栈的时候,我已经向大家介绍了>栈的特点以及介绍了栈的相关操作,并利用C语言...

网友评论

      本文标题:顺序栈的简单实现

      本文链接:https://www.haomeiwen.com/subject/dfbldctx.html