// ННГУ, ВМК, Курс "Методы программирования-2", С++, ООП
//
// multroot.h - Copyright (c) Гергель В.П. 02.08.2000
//
// Динамические структуры данных - система N стеков
//   базовый абстрактный класс для наследования

#ifndef __MULTROOT_H
#define __MULTROOT_H

#include "datacom.h"

#define MemLimit  100  // размер памяти
#define StackNum   10  // количество стеков

class TMultiRoot : public TDataCom  {
  protected:
    TElem Mem[MemLimit]; // память для стеков
    int DefaultStack;    // номер текущего стека
  public:
    TMultiRoot () { DefaultStack = 0; }
    virtual int  IsEmpty ( int ns ) const = 0; // контроль пустоты СД
    virtual int  IsFull  ( int ns ) const = 0; // контроль переполнения СД
    virtual void Put     ( int ns, const TData &Val )=0; // положить в стек
    virtual TData Get    ( int ns ) = 0;       // взять из стека с удалением
// методы для работы с текущим стеком
    void SetDefaultStack ( int ns ){ DefaultStack = ns; } // текущий стек
    int  IsEmpty (void) const      { return IsEmpty(DefaultStack); } // пуст ?
    int  IsFull  (void) const      { return IsFull (DefaultStack); } // полон ?
    void Put ( const TData &Val )  { Put(DefaultStack,Val);    }     // в стек
    virtual TData Get (void)       { return Get(DefaultStack); }     // из стека
};
#endif
Хостинг от uCoz