-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstackcomposition.h
43 lines (33 loc) · 993 Bytes
/
stackcomposition.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Fig. 17.12: stackcomposition.h
// Template Stack class definitionwith composed List object.
#ifndef STACKCOMPOSITION
#define STACKCOMPOSITION
#include "list.h" // List class definition
template< class STACKTYPE >
class Stack {
public:
// no constructor; List constructor does initialization
// push calls stackList object's insertAtFront function
void push(const STACKTYPE &data)
{
stackList.insertAtFront(data);
} // end function push
// pop calls stackList object's removeFromFront function
bool pop(STACKTYPE &data)
{
return stackList.removeFromFront(data);
} // end function pop
// isStackEmpty calls stackList object's isEmpty function
bool isStackEmpty() const
{
return stackList.isEmpty();
} // end function isStackEmpty
// printStack calls stackList object's print function
void printStack() const
{
stackList.print();
} // end function printStack
private:
List< STACKTYPE > stackList; // composed List object
}; // end class Stack
#endif