Presentation is loading. Please wait.

Presentation is loading. Please wait.

C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 18: Stacks and Queues.

Similar presentations


Presentation on theme: "C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 18: Stacks and Queues."— Presentation transcript:

1 C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 18: Stacks and Queues

2 C++ Programming: Program Design Including Data Structures, Fourth Edition2 Stacks Stack: group of homogenous elements −Addition and deletion occur only at one end, called the top of the stack Example: in a cafeteria, the second tray can be removed only if first tray has been removed −Last in first out (LIFO) data structure Operations: −Push: to add an element onto the stack −Pop: to remove an element from the stack

3 C++ Programming: Program Design Including Data Structures, Fourth Edition3 Stacks (continued)

4 C++ Programming: Program Design Including Data Structures, Fourth Edition4 Implementation of Stacks as Arrays First element can go in first array position, the second in the second position, etc. The top of the stack is the index of the last element added to the stack Stack elements are stored in an array Stack element is accessed only through top To keep track of the top position, use a variable called stackTop

5 C++ Programming: Program Design Including Data Structures, Fourth Edition5 Implementation of Stacks as Arrays (continued) Because stack is homogeneous −You can use an array to implement a stack Can dynamically allocate array −Enables user to specify size of the array The class stackType implements the functions of the abstract class stackADT

6

7

8 C++ Programming: Program Design Including Data Structures, Fourth Edition8 Implementation of Stacks as Arrays (continued) C++ arrays begin with the index 0 −Must distinguish between: The value of stackTop The array position indicated by stackTop If stackTop is 0, the stack is empty If stackTop is nonzero, the stack is not empty −The top element is given by stackTop - 1

9 C++ Programming: Program Design Including Data Structures, Fourth Edition9 Implementation of Stacks as Arrays (continued)

10 C++ Programming: Program Design Including Data Structures, Fourth Edition10 Initialize Stack

11 C++ Programming: Program Design Including Data Structures, Fourth Edition11 Empty Stack If stackTop is 0, the stack is empty

12 C++ Programming: Program Design Including Data Structures, Fourth Edition12 Full Stack The stack is full if stackTop is equal to maxStackSize

13 C++ Programming: Program Design Including Data Structures, Fourth Edition13 Push Store the newItem in the array component indicated by stackTop Increment stackTop Must avoid an overflow

14 C++ Programming: Program Design Including Data Structures, Fourth Edition14 Push (continued)

15 C++ Programming: Program Design Including Data Structures, Fourth Edition15 Return the Top Element

16 C++ Programming: Program Design Including Data Structures, Fourth Edition16 Pop Simply decrement stackTop by 1 Must check for underflow condition

17

18 C++ Programming: Program Design Including Data Structures, Fourth Edition18 Copy Stack

19 C++ Programming: Program Design Including Data Structures, Fourth Edition19 Constructor and Destructor

20 C++ Programming: Program Design Including Data Structures, Fourth Edition20 Constructor and Destructor (continued)

21 C++ Programming: Program Design Including Data Structures, Fourth Edition21 Copy Constructor

22 C++ Programming: Program Design Including Data Structures, Fourth Edition22 Overloading the Assignment Operator (=)

23 C++ Programming: Program Design Including Data Structures, Fourth Edition23 Stack Header File Place definitions of class and functions (stack operations) together in a file

24

25 C++ Programming: Program Design Including Data Structures, Fourth Edition25 Programming Example: Highest GPA Input: program reads an input file with each student’s GPA and name 3.5 Bill 3.6 John 2.7 Lisa 3.9 Kathy 3.4 Jason 3.9 David 3.4 Jack Output: the highest GPA and all the names associated with the highest GPA

26 C++ Programming: Program Design Including Data Structures, Fourth Edition26 Problem Analysis and Algorithm Design Read the first GPA and name of the student −This is the highest GPA so far Read the second GPA and student name −Compare this GPA with highest GPA so far New GPA is greater than highest GPA so far Update highest GPA, initialize stack, add to stack New GPA is equal to the highest GPA so far Add name to stack New GPA is smaller than the highest GPA Discard

27

28


Download ppt "C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 18: Stacks and Queues."

Similar presentations


Ads by Google