Presentation is loading. Please wait.

Presentation is loading. Please wait.

ENQUEUE “MATT” MATT FRONTBACK ENQUEUE “ANDREW”

Similar presentations


Presentation on theme: "ENQUEUE “MATT” MATT FRONTBACK ENQUEUE “ANDREW”"— Presentation transcript:

1

2

3

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

12

13

14

15

16

17

18

19

20

21

22

23

24

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( ));

26

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.

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68 STACKS

69

70

71

72

73

74

75

76

77

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

80

81

82

83

84

85

86

87

88

89

90

91 STACK APPLICATION 1 HOW COMPILERS IMPLEMENT RECURSION

92

93

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.

96

97

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

99

100

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

115

116 THE TEMPORARY STORAGE FACILITY IS A STACK. HERE IS THE STRATEGY FOR MAINTAINING THE STACK:

117

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

121

122 CONVERT TO POSTFIX: x * (y + z)

123

124

125

126

127

128 TOKENS

129

130

131

132

133

134

135

136

137

138


Download ppt "ENQUEUE “MATT” MATT FRONTBACK ENQUEUE “ANDREW”"

Similar presentations


Ads by Google