Presentation is loading. Please wait.

Presentation is loading. Please wait.

Stack ADT Operations Push, Pop, Top, isEmpty Application: Expression Evaluation Arithmetic Expression Infix-to-Postfix Postfix to Quadruples Boolean Expressions.

Similar presentations


Presentation on theme: "Stack ADT Operations Push, Pop, Top, isEmpty Application: Expression Evaluation Arithmetic Expression Infix-to-Postfix Postfix to Quadruples Boolean Expressions."— Presentation transcript:

1 Stack ADT Operations Push, Pop, Top, isEmpty Application: Expression Evaluation Arithmetic Expression Infix-to-Postfix Postfix to Quadruples Boolean Expressions (Assignment #1) Infix-to-Postfix Postfix to Quadruples

2 Implementing a Stack Using Vector /Array – requires estimate of maximum list length – may grow dynamically – Ø = empty slots – Can contain varied data/objects (not necessarily homogeneous) 30−0Golf #1 ØØØ 212 rules! top

3 Implementing a Stack Using Linked List –flexible, adjusts to problem size –implementing a linked list nodes and references/links/pointers top Golf #1 212 rules! 30−0 Ø

4 Implementing a Stack Using Linked List –implementing a linked list cursor implementation top = 5 freelist = 8 012345678012345678 2 7 1 4 3 6 0 Golf #1 212 rules! 30−0 Ø Ø Ø Ø Ø Ø

5 Implementing a Stack Vector/Array Linked List – pushO(1) * O(1) – popO(1)O(1) – top/peekO(1)O(1) – isEmptyO(1)O(1) *assuming no need for Vector/Array expansion

6 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: @

7 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z @

8 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z =@=@

9 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a =@=@

10 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a *=@*=@

11 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a (*=@(*=@

12 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x (*=@(*=@

13 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x +(*=@+(*=@

14 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y +(*=@+(*=@

15 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + (*=@(*=@

16 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + *=@*=@

17 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * =@ =@

18 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * +=@+=@

19 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z +=@+=@

20 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z *+=@ *+=@

21 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c *+=@ *+=@

22 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c ^*+=@^*+=@

23 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c (^*+=@(^*+=@

24 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 (^*+=@(^*+=@

25 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 −(^*+=@−(^*+=@

26 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 (−(^*+=@(−(^*+=@

27 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 ~(−(^*+=@~(−(^*+=@

28 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~(−(^*+=@~(−(^*+=@

29 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~(−(^*+=@ ~(−(^*+=@

30 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ (−(^*+=@ (−(^*+=@

31 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ +(−(^*+=@ +(−(^*+=@

32 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w +(−(^*+=@+(−(^*+=@

33 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w +(−(^*+=@ +(−(^*+=@

34 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + (−(^*+=@ (−(^*+=@

35 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + (−(^*+=@(−(^*+=@

36 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + −(^*+=@ −(^*+=@

37 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + −(^*+=@ −(^*+=@

38 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + − (^*+=@ (^*+=@

39 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + − ^*+=@ ^*+=@

40 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + − ^*+=@ ^*+=@

41 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + − ^ *+=@ *+=@

42 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + − ^ * +=@ +=@

43 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + − ^ * /+=@ /+=@

44 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + − ^ * x /+=@ /+=@

45 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + − ^ * x /+=@ /+=@

46 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / +=@ +=@

47 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + =@ =@

48 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = @

49 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + =

50 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = z

51 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = az az

52 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = xaz xaz

53 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = yxaz yxaz

54 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = yxaz yxaz

55 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t0 a z + x y t0

56 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t0 a z + x y t0

57 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t1 z + x y t0 * a t0 t1

58 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = z t1 z + x y t0 * a t0 t1

59 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = c z t1 z + x y t0 * a t0 t1

60 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = 2 c z t1 z + x y t0 * a t0 t1

61 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = d 2 c z t1 z + x y t0 * a t0 t1

62 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = d 2 c z t1 z + x y t0 * a t0 t1

63 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t2 2 c z t1 z + x y t0 * a t0 t1 ~ d t2

64 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = w t2 2 c z t1 z + x y t0 * a t0 t1 ~ d t2

65 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = w t2 2 c z t1 z + x y t0 * a t0 t1 ~ d t2

66 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t3 2 c z t1 z + x y t0 * a t0 t1 ~ d t2 + t2 w t3

67 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t3 2 c z t1 z + x y t0 * a t0 t1 ~ d t2 + t2 w t3

68 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t4 c z t1 z + x y t0 * a t0 t1 ~ d t2 + t2 2 t3 - w t3 t4

69 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t4 c z t1 z + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4

70 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t5 z t1 z + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5

71 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t5 z t1 z + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5

72 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t6 t1 z + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5 * Z t5 t6

73 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = x t6 t1 z + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5 * Z t5 t6

74 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = x t6 t1 z + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5 * Z t5 t6

75 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t7 t1 z + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5 * Z t5 t6 / t6 x t7

76 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t7 t1 z + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5 * Z t5 t6 / t6 x t7

77 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t8 z + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5 * Z t5 t6 / t6 x t7 + t1 t7 t8

78 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t8 z + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5 * Z t5 t6 / t6 x t7 + t1 t7 t8

79 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5 * Z t5 t6 / t6 x t7 + t1 t7 t8 = t8 z

80 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = t8 z + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5 * Z t5 t6 / t6 x t7 + t1 t7 t8

81 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5 * Z t5 t6 / t6 x t7 + t1 t7 t8 = t8 z

82 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5 * Z t5 t6 / t6 x t7 + t1 t7 t8 = t8 z

83 Postfix to Quadruples postfix expression: z a x y + * z c 2 d ~ w + − ^ * x / + = + x y t0 * a t0 t1 ~ d t2 + t2 w t3 - w t3 t4 ^ c t4 t5 * Z t5 t6 / t6 x t7 + t1 t7 t8 = t8 z infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; --- t0 --- -t2- ----- t1 ------ ---- t3 ---- -------- t4 -------- ----------- t5 ----------- -------------- t6 ------------- ----------------- t7 -------------- ---------------------- t8 ---------------------------


Download ppt "Stack ADT Operations Push, Pop, Top, isEmpty Application: Expression Evaluation Arithmetic Expression Infix-to-Postfix Postfix to Quadruples Boolean Expressions."

Similar presentations


Ads by Google