6.2.   _____________________________159

6.2.   

        -
 .   ch_stack   5.2, :   -
,  . 135 ,      -
.

   ch_stack    . 
      ch_stack.  
     .   -
,   push ()  pop ().      -
  (accessor function),     ,  
^op_of ()  empty ().   -   const. -
      (mutator function) 
   ch_stack (, push ()  pop ()). --
       
ch_stack.

  ch_stac4.h

// ch_stack  

class ch_stack {
public:

//    ch_stack

explicit ch_stack(int size) : max_len(size), top(EMPTY)

{ assert(size > 0); s = new char[size]; assert(s != 0);}

void reset() { top = EMPTY; }

void push(char c) { s[++top] = c; }

char pop() { return s[top--]; }

char top_of() const { return s[top]; }

bool empty() const { return (top == EMPTY); }

bool full() const { return (top == max_len - 1); }
private:

enum { EMPTY = -1 } ;

char* s;   // s[max_len]

int  max_len;

int   top;

};

 ,  ch_stack,    . -
  ch_stack     :

ch_stack data(lOOO);        // 1000 
ch_sfcack more_dafca(2 * n);  // 2* 

   .      -
,    ch_stack  .     -
,     char*    -
 ch_stack.    :