zoukankan      html  css  js  c++  java
  • 数据结构笔记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;
                }
            }

        }
    }

      其他

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

    其他的就不说了,这么晚了用本本蹭别人家的无线用写的。呵呵,有问题再改吧,等会睡觉的,明儿还上班的呢
  • 相关阅读:
    《Microsoft Sql server 2008 Internals》读书笔记第十一章DBCC Internals(2)
    《Microsoft Sql server 2008 Internals》读书笔记第十一章DBCC Internals(9)
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(10)
    CKEditor在asp.net环境下的使用一例
    《Microsoft Sql server 2008 Internals》读书笔记第五章Table(7)
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(11)
    千万数据的连续ID表,快速读取其中指定的某1000条数据?
    javascript中的float运算精度
    .Net与Java的互操作(.NET StockTrader微软官方示例应用程序)
    《Microsoft Sql server 2008 Internals》读书笔记第十一章DBCC Internals(6)
  • 原文地址:https://www.cnblogs.com/dupeng0811/p/1520205.html
Copyright © 2011-2022 走看看