• 数据结构笔记4 栈


    栈的定义和概念

    栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。
      (
    1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。
      (
    2)当表中没有元素时称为空栈。
      (
    3)栈为后进先出(Last In First Out)的线性表,简称为LIFO表。
         栈的修改是按后进先出的原则进行。每次删除(退栈)的总是当前栈中
    "最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除。

    栈在C#中的代码实现

    using System;

    namespace EveryDayStudy.数据结构
    {
        
    public class DAPStack
        {
            
    private object[] _array;
            
    private const int _defaultCapacity = 10;
            
    private int _size;

            
    public DAPStack()
            {
                _array 
    = new object[_defaultCapacity];
                _size 
    = 0;
            }

            
    public DAPStack(int initialCapacity)
            {
                
    if (initialCapacity <0)
                {
                    
    throw new ArgumentOutOfRangeException("栈空间不能小于零");
                }
                
    if (initialCapacity <_defaultCapacity)
                {
                    initialCapacity 
    = _defaultCapacity;
                }

                _array 
    = new object[initialCapacity];
                _size 
    = 0;
            }

            
    public virtual  object Pop()
            {
                
    if (_size ==0)
                {
                    
    throw  new InvalidOperationException("栈内已经没有数据了。");
                }
                
    object obj2 = _array[--this._size];
                _array[_size] 
    = null;
                
    return obj2;
            }

            
    public virtual void Push(object obj)
            {
                
    if (_size == _array.Length)
                {
                    
    object[] destinationArray  = new object[2*_array.Length];
                    _array 
    = destinationArray;
                }
                _array[_size
    ++= obj;
            }

            
    public  virtual int Count
            {
                
    get
                {
                    
    return _size;
                }
            }

        }
    }

      其他

    其他的好像没有什么好注意的了,大概是因为栈这个结构在我们上学的时候接触的太多了,还是这个栈本来就好理解吧。

    其他的就不说了,这么晚了用本本蹭别人家的无线用写的。呵呵,有问题再改吧,等会睡觉的,明儿还上班的呢
  • 相关阅读:
    常用的一些js方法
    git常用命令
    thread join和detach的区别
    C和C++的区别和联系
    C++面试集锦( 面试被问到的问题 )
    C/C++面试题:编写类String的构造函数、析构函数和赋值函数。
    C++ 多态的实现及原理
    获取当前操作系统的ip
    CString的头文件
    C++ 多用户模式下同一个exe只能运行一次
  • 原文地址:https://www.cnblogs.com/dupeng0811/p/1520205.html
Copyright © 2020-2023  润新知