Δομές Δεδομένων 1 Στοίβα
Δομές Δεδομένων 2 Στοίβα (stack) Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή) Περιορισμένος τύπος γραμμικής λίστας: Εισαγωγή και διαγραφή μόνο στο ένα άκρο της λίστας (στην αρχή) AbstractDataType Stack { instances ordered list of elements; one end is called the bottom; the other is the top; operations Create (): create an empty stack; IsEmpty (): return true if stack is empty, return false otherwise; Top (): return top element of stack; Add (x): add element x to the stack; Delete (x): delete top element from stack and put it in x; }
Δομές Δεδομένων 3 Εφαρμογή Στοίβας Υπολογισμός της ΕΠΙΘΕΜΑΤΙΚΗΣ μορφής μίας έκφρασης από την ΕΝΔΟΘΕΜΤΙΚΗ μορφή. ΕΠΙΘΕΜΑΤΙΚΗ POSTFIX ΕΝΔΟΘΕΜΑΤΙΚΗ INFIX
Δομές Δεδομένων 4 Εφαρμογή Στοίβας Παράδειγμα: Infix: A*B+C*D^E/F+G*H Postfix: AB*CDE^*F/+GH*+
Δομές Δεδομένων 5 Προτεραιότητες Τελεστών 1, ==, !=, = 2+, -, || 3*, /, %, && 4unary-, unary+, ! PriorityOperator
Δομές Δεδομένων 6 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix
Δομές Δεδομένων 7 Infix to Postfix infix expression: z = a * ( x + y ) + z * c ^ ( 2 − ( − d + w ) ) / x ; postfix expression:
Δομές Δεδομένων 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 Εφαρμογή Στοίβας Αναζήτηση ενός μονοπατιού σε ένα λαβύρινθο.
Δομές Δεδομένων 51 Λαβύρινθος Entrance Exit
Δομές Δεδομένων
Δομές Δεδομένων 53 Κινήσεις NW NNE [row-1][col-1][row-1]col][row-1][col+1] W XE [row]col-1][row][col][row][col+1] [row+1][col-1][row+1][col][row+1][col+1] SW SSE Allowable moves
Δομές Δεδομένων 54 Επίλυση (1,0,E) (1,1,S) (2,1,E) (2,2,E) (2,3,N) (1,3,E) (1,4,E) Είσοδος Έξοδος