Review the data structure and write a stack operation template...
I forgot to write the Destructor when I wrote it for the first time. I want to learn from it.
Code:
# Ifndef stack_h <br/> # define stack_h </P> <p> # include <stdio. h> <br/> # include <stdlib. h> <br/> # include <iostream> <br/> using namespace STD; </P> <p> template <class T> <br/> class Stack <br/>{< br/> Public: <br/> int top; <br/> int maxtop; <br/> T * data; <br/> stack (INT size); // constructor <br/> ~ Stack (); <br/> bool isempty (); // null <br/> bool isfull (); // judge as full <br/> void push (t ch/*, stack S */); // press the stack <br/> t pop (); // output stack <br/>}; </P> <p> template <class T> <br/> stack <t>: Stack (INT size) <br/>{< br/> maxtop = size; <br/> Top =-1; <br/> DATA = new T [size]; <br/>}</P> <p> template <class T> <br/> stack <t> ::~ Stack () <br/>{< br/> Delete [] data; <br/>}</P> <p> template <class T> <br/> bool stack <t>: isempty () <br/>{< br/> return top <0; <br/>}</P> <p> template <class T> <br/> bool stack <t>: isfull () <br/>{< br/> return Top = maxtop; <br/>}</P> <p> template <class T> <br/> void stack <t>: Push (t ch/*, stack S */) <br/> {<br/> If (isfull () <br/> {<br/> cout <"the stack is full ~ "<Endl; <br/> return; <br/>}</P> <p> data [++ top] = CH; <br/>}</P> <p> template <class T> <br/> T stack <t>: Pop () <br/>{< br/> If (isempty () <br/>{< br/> cout <"the stack is empty ~ "<Endl; <br/> return-1; <br/>}< br/> t s = data [Top]; </P> <p> top --; <br/> return s; <br/>}< br/> # endif