• 顺序栈的实现


    代码
    //顺序栈类SeqStack<T>的实现说明如下所示。
        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;
                }
            }
            
    //构造器
            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()
            {
                
    if (top == -1)
                {
                    
    return true;
                }
                
    else
                {
                    
    return false;
                }
            }
            
    //判断顺序栈是否为满
            public bool IsFull()
            {
                
    if (top == maxsize - 1)
                {
                    
    return true;
                }
                
    else
                {
                    
    return false;
                }
            }
            
    //入栈
            public void Push(T item)
            {
                
    if (IsFull())
                {
                    Console.WriteLine(
    "Stack is full");
                    
    return;
                }
                data[
    ++top] = item;
            }
            
    //出栈
            public T Pop()
            {
                T tmp 
    = default(T);
                
    if (IsEmpty())
                {

                    Console.WriteLine(
    "Stack is empty");
                    
    return tmp;
                }
                tmp 
    = data[top];
                
    --top;
                
    return tmp;
            }
            
    //获取栈顶数据元素
            public T GetTop()
            {
                
    if (IsEmpty())
                {
                    Console.WriteLine(
    "Stack is empty!");
                    
    return default(T);
                }
                
    return data[top];
            }
        }
  • 相关阅读:
    我的openwrt学习笔记(四):OpenWrt源码下载
    算法系列之“汉若塔”
    尖峰在线Oracle OCM实战 --开创国内Dtrace先河!
    Android开发屏幕适配知识点
    【cocos2d-js官方文档】十九、Cocos2d-JS单文件引擎使用指引
    PHP重载
    作为一个在城市打拼的人。
    关于马云最帅的照片是哪一张?!你们感受下!哈哈哈哈!(10P)
    Banana PI (香蕉派) 安装 ubuntu-core-14 最小核心的操作步骤
    (转载)偏序集的Dilworth定理学习
  • 原文地址:https://www.cnblogs.com/hubcarl/p/1706408.html
Copyright © 2020-2023  润新知