Download presentation
Presentation is loading. Please wait.
4
ENQUEUE “MATT”
5
MATT FRONTBACK
6
ENQUEUE “ANDREW”
7
MATT FRONT ANDREW BACK
8
ENQUEUE “SAMIRA”
9
SAM IRAMATT FRONT ANDREW BACK
10
DEQUEUE
11
SAM IRA FRONT ANDREW BACK
25
DETERMINE THE OUTPUT FROM THE FOLLOWING: Queue myQueue = new Queue(); for (int i = 0; i < 10; i++) myQueue.enqueue (new Integer (i * i)); while (!myQueue.isEmpty( )) gui.println (myQueue.dequeue( ));
27
A SYSTEM IS A COLLECTION OF INTERACTING PARTS.
28
A MODEL IS A SIMPLIFICATION OF A SYSTEM. THE PURPOSE OF BUILDING A MODEL IS TO STUDY THE UNDERLYING SYSTEM.
68
STACKS
78
DETERMINE THE OUTPUT FROM THE FOLLOWING: Stack myStack = new Stack( ); for (int i = 0; i < 10; i++) myStack.push (new Integer (i * i)); while (!myStack.isEmpty( )) gui.println (myStack.pop( ));
79
METHOD DESCRIPTIONS FOR THE Stack CLASS
91
STACK APPLICATION 1 HOW COMPILERS IMPLEMENT RECURSION
94
THERE IS A RUN-TIME STACK TO HANDLE THESE ACTIVATION RECORDS. PUSH: WHEN METHOD IS CALLED POP: WHEN EXECUTION OF METHOD IS COMPLETED
95
AN ACTIVATION RECORD IS SIMILAR TO AN EXECUTION FRAME, EXCEPT THAT AN ACTIVATION RECORD HAS VARIABLES ONLY, NO CODE. YOU CAN REPLACE RECURSION WITH ITERATION BY CREATING YOUR OWN STACK.
98
// Precondition: n is a non-negative integer. Otherwise, // IllegalArgumentException will be thrown. // Postcondition: The binary equivalent of n has been printed. // The worstTime (n) is O (log n). public void writeBinary (int n) { Stack myStack = new Stack( ); if (n < 0) throw new IllegalArgumentException( ); myStack.push (new Integer (n % 2)); while (n > 1) { n /= 2; myStack.push (new Integer (n % 2)); } // pushing while (!myStack.isEmpty( )) gui.print (myStack.pop( )); gui.println ("\n\n"); } // method writeBinary
101
STACK APPLICATION 2 CONVERTING FROM INFIX TO POSTFIX
102
IN INFIX NOTATION, AN OPERATOR IS PLACED BETWEEN ITS OPERANDS. a + b c – d + (e * f – g * h) / i
103
OLD COMPILERS: INFIX MACHINE LANGUAGE THIS GETS MESSY BECAUSE OF PARENTHESES. NEWER COMPILERS: INFIX POSTFIX MACHINE LANGUAGE
104
IN POSTFIX NOTATION, AN OPERATOR IS PLACED IMMEDIATELY AFTER ITS OPERANDS. INFIXPOSTFIX a + bab+ a + b * cabc*+ a * b + cab*c+ (a + b) * cab+c*
105
PARENTHESES ARE NOT NEEDED, AND NOT USED, IN POSTFIX.
106
LET’S CONVERT AN INFIX STRING TO A POSTFIX STRING. x – y * z
107
POSTFIX PRESERVES THE ORDER OF OPERANDS, SO AN OPERAND CAN BE APPENDED TO POSTFIX AS SOON AS THAT OPERAND IS ENCOUNTERED IN INFIX.
108
INFIXPOSTFIX x – y * z x
109
INFIXPOSTFIX x – y * z x THE OPERANDS FOR ‘-’ ARE NOT YET IN POSTFIX, SO ‘-’ MUST BE TEMPORARILY SAVED SOMEWHERE.
110
INFIXPOSTFIX x – y * z xy
111
INFIXPOSTFIX x – y * z xy THE OPERANDS FOR ‘*’ ARE NOT YET IN POSTFIX, SO ‘*’ MUST BE TEMPORARILY SAVED SOMEWHERE, AND RESTORED BEFORE ‘-’.
112
INFIXPOSTFIX x – y * z xyz
113
INFIXPOSTFIX x – y * z xyz* –
114
SUPPOSE, INSTEAD, WE STARTED WITH x*y-z. AFTER MOVING ‘x’ TO POSTFIX, ‘*’ IS TEMPORARILY SAVED, AND THEN ‘y’ IS APPENDED TO POSTFIX. WHAT HAPPENS WHEN ‘-’ IS ACCESSED? INFIXPOSTFIX x * y – z xy
116
THE TEMPORARY STORAGE FACILITY IS A STACK. HERE IS THE STRATEGY FOR MAINTAINING THE STACK:
118
INFIX GREATER, PUSH
119
CONVERT FROM INFIX TO POSTFIX: INFIXPOSTFIX a + b * c / d - e
120
INFIXPOSTFIX a + b * c / d – e abc*d/+e – - / * + OPERATOR STACK
122
CONVERT TO POSTFIX: x * (y + z)
128
TOKENS
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.