Template class exercises - stack

xiaoxiao2021-03-06  65

Template class written when you learn C as an exercise to C , # include #include #define stack_init_size 100

Template class cstack {public: cstract; ~ cstack (void); public: // ----------- Stack order storage representation -------- ----- static struct _tagstack {t * base; // After the stack configuration, the value of the base is null; t * top; // Stack top pointer int stcksize;}; private: typedef _tagstack sqstack;

PUBLIC: INT PUSH (Sqstack & S, T E);

INT INITACK (Sqstack & S);

INT POP (Sqstack & S, T & E);

Int stackempty (SQSTACK S);

INT Stacklength (Sqstack S);

Void Gettop (Sqstack S, T & E);

Void ClearsTack (Sqstack & S); Void Destroystack;

Void StackTraverse (Sqstack & S); // Maze Solution Classic Algorithm / Int MazePath (MaztyPe Maze, PostType Start, PostType End);}; Template Cstack :: Cstack (void) {} ​​Template cstack :: ~ cstack (void) {} ​​// Add Stack Template Int Cstack :: Push (Sqstack & S, T E) {IF (S.TOP - S.BASE> = S.Stacksize) // Stack full, add storage {s.base = (t *) realloc (s.stacksize stack_init_size * sizeof (t)); if (s.base == null) Return -1; s.top = s.base s.stacksize; s.stacksize = stack_init_size;} * S.top = E; RETURN 0;} // Initialization stack template int Cstack : : Initstack (Sqstack & s) {s.base = new t [stack_init_size]; if (s.base == null) return -1; s.top = s.base; s.stacksize = stack_init_size; return 0;} // Popped top Template int Cstack :: Pop (Sqstack & S, T & E) {if (S.top == S.Base) / / Stack has empty {return -1;} E = * - -s.top; return 0;} // Decision stack is empty Template int Cstack :: Stackempty (Sqstack S) {if (S.Base == S.top) Return 1; Return 0 }

/ / Clear Stack Template Void Cstack :: CLEARSTACK (Sqstack & S) {T * TMP = S.BASE; while (tmp! = S.top) * TMP = null;}

// Return to the top data Template Void Cstack :: Gettop (Sqstack S, T & E) {if (S.TOP == S.Base) / / Stack is empty Return; E = * (S .top-1);}

// Take the length of the stack Template int Cstack :: StackLENGTH (Sqstack S) {Return (S.TOP-S.BASE);

// Destruction Stack Template Void Cstack :: DestroyStack (Sqstack & S) {S.TOP = S.BASE;} Template Void Cstack :: StackTraverse (Sqstack & s) {INT I = 0; T TMP; INT LEN = stacklength (s); for (; i

转载请注明原文地址:https://www.9cbs.com/read-90116.html

New Post(0)