ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

Σχετικά έγγραφα
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Στοίβες - Ουρές. Στοίβα (stack) Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής

public class ArrayStack implements Stack {

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Δομές Δεδομένων & Αλγόριθμοι

ΕΡΓΑΣΤΗΡΙΟ 5 ΣΗΜΕΙΩΣΕΙΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα μέσα σε αντικείμενα Αντικείμενα ως επιστρεφόμενες τιμές Αντικείμενα με πίνακες

Δομές Δεδομένων (Data Structures)

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 1. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης. Στοίβες και Ουρές. Οικονοµικό Πανεπιστήµιο Αθηνών

Βασικές Έννοιες Δοµών Δεδοµένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Συλλογές, Στοίβες και Ουρές

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Σύνοψη Προηγούμενου (1/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας. Σύνοψη Προηγούμενου (2/2) Σημερινό Μάθημα. Πίνακες. Εισαγωγή, σε χρόνο O(1).

Προγραμματισμός Υπολογιστών με C++

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

ΠΛΗ111. Ανοιξη Μάθηµα 4 ο. Στοίβα. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

POINTERS, AGGREGATION, COMPOSITION

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

Δομές Δεδομένων Ενότητα 3

Δομές Δεδομένων & Αλγόριθμοι. Στοίβες. Εργαστήριο Γνώσης & Ευφυούς Πληροφορικής 1

Δομές Δεδομένων και Αλγόριθμοι

public class ArrayQueue implements Queue {

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής

Εισαγωγή στον Προγραμματισμό

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Διδάσκων: Παναγιώτης Ανδρέου

ιαφάνειες παρουσίασης #6 (α)

ΠΡΟΤΥΠΑ. ΠΑΡΑ ΕΙΓΜΑ ηµιουργία πρότυπου στοίβας (stack) και στη συνέχεια δηµιουργία µιας στοίβας σηµείων.

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Η γλώσσα προγραμματισμού C Συνδεδεμένες Λίστες

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής T.E.I. ΘΕΣΣΑΛΟΝΙΚΗΣ

8. Μέθοδοι (Methods)

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:

Στοίβες με Δυναμική Δέσμευση Μνήμης

HY150a Φροντιστήριο 3 24/11/2017

Προγραμματισμός Ι. Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Σι θα δούμε σε αυτό το μάθημα;

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

Δομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

Αντικειµενοστρεφής Προγραµµατισµός

Κεφάλαιο 5 Συλλογές, Στοίβες και Ουρές

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής T.E.I. ΘΕΣΣΑΛΟΝΙΚΗΣ

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Προγραμματισμός Υπολογιστών με C++

Διορθώσεις σελ

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

υναµικές οµές εδοµένων

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Δομές Δεδομένων - Εργαστήριο 2. Λίστες

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

Δοµές Δεδοµένων. 7η Διάλεξη Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Οντοκεντρικός Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Σημειώσεις δεύτερης εβδομάδας

17TimeThis.h function returns reference pointer to same object { return *this; }

Παραδείγματα Assembly Μέρος Γ

Σημειώσεις όγδοης εβδομάδας

Εισαγωγή στον Προγραμματισμό

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Στοίβες. ΟΑΤ της Στοίβας. Περιγραφή και Υλικό Ανάγνωσης. Αφηρηµένοι Τύποι εδοµένων (AΤ )

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006

Αλγόριθμοι Ταξινόμησης Μέρος 3

Αντικειμενοστρεφής Προγραμματισμός

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

2 using namespace s t d ; 4 { 12 int t= x ; 6 x=y ; 7 y=t ; 8 } 9 11 { 13 x= y ; 14 y=t ; 15 } {

Δομές Δεδομένων - Εργαστήριο 5. Ουρές Προτεραιότητας

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

Φροντιςτήριο. Linked-List

The Simply Typed Lambda Calculus

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

Finite Field Problems: Solutions

Αντικειμενοστρεφής Προγραμματισμός

Transcript:

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ Κωδικός Θ: ΤΠ3001, Κωδικός Ε: ΤΠ3101 (ΜΕΥ/Υ) Ώρες (Θ - Ε): 4-2 Προαπαιτούμενα: Δρ. ΒΙΔΑΚΗΣ ΝΙΚΟΣ

ΕΡΓΑΣΤΗΡΙΟ 6 Στοίβα (Stack)

Stack Introduction Stack is one of the fundamental data structures in computer science. Is a last in, first out (LIFO) data structure. Is characterized by only two fundamental operations push and pop. It is used in many algorithms and applications. As an example, stack is used: implicitly in recursion. for expression evaluation. to check the correctness of parentheses sequence. etc. The push operation adds to the top of the list, hiding any items already on the stack, or initializing the stack if it is empty. The pop operation removes an item from the top of the list, reveals previously concealed items, or results in an empty list. Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 3

Stack Methods Stack is an data structure in which we are using two methods: 1. to put an object in the stack(push) We have to check, if the stack if full before we put (stack_push) any object to the stack Stack 2. to get an object from the stack(pop). We have to check, is the stack is empty before we get (stack_pop) an object from the stack Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 4

Stack data structure working sequence Working of stack: Ας θεωρήσουμε το array A[0],A[1],A[2]... A[n-1],A[n] είναι η στοίβα μας με πρώτο στοιχείο το A[0] και τελευταίο είναι το A[n]. Και έχουμε μια μεταβλητή σαν δείκτη, όπου κρατάει σε ποιο στοιχείο μπορούμε να τοποθετήσουμε στοιχείο στο πίνακα(έστω το p)! Βήματα pop και push. Pop: 1. Compare p and 0. 2. If p>0 take the object from the array and p=p-1, else the stack is empty. Push: 1. Compare p and n. 2. If p<n put the object to the array and p=p+1,else the stack is full. Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 5

Stack Working with Stack (visual paradigm) Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 6

Stack Working with Stack Example Example array values: 12, 9, 4, 99, 120 1.pop(12) empty list 2.pop(9) 12 3.push( ) 9 12 4.pop(4) 12 5.pop(99) 4 12 6.pop(120) 99 4 12 7.push() 120 99 4 12 8.push() 99 4 12 9.push() 4 12 10.push() 12 empty list Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 7

public class Stack { private int top; private int[ ] storage; Stack(int capacity) { if (capacity <= 0) throw new IllegalArgumentException( "Stack's capacity must be positive"); storage = new int[capacity]; top = -1; void push(int value) { if (top == storage.length) throw new StackException("Stack's underlying storage is overflow"); top++; storage[top] = value; int peek() { Stack Example code in Java if (top == -1) throw new StackException("Stack is empty"); return storage[top]; void pop() { if (top == -1) throw new StackException("Stack is empty"); top--; boolean isempty() { return (top == -1); public class StackException extends RuntimeException { public StackException(String message) { super(message); Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 8

#include <string> using namespace std; class Stack { private: int top; int capacity; int *storage; public: Stack(int capacity) { if (capacity <= 0) throw string("stack's capacity must be positive"); storage = new int[capacity]; this->capacity = capacity; top = -1; void push(int value) { if (top == capacity) throw string("stack's underlying storage is overflow"); top++; storage[top] = value; Stack Example code in C++ ; int peek() { if (top == -1) throw string("stack is empty"); return storage[top]; void pop() { if (top == -1) throw string("stack is empty"); top--; bool isempty() { return (top == -1); ~Stack() { delete[] storage; Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 9

#include<stdio.h> #define N 5 main() { int a[n]={0; int sp=-1,ch,n,i; while(ch!=4) { printf("\n\t 1.PUSH."); printf("\n\t 2.POP."); printf("\n\t 3.DISPLAY."); printf("\n\t 4.EXIT "); printf("\n\t ENTER UR CHOICE :::: "); scanf("%d",&ch); if(ch==1) { if(sp>=n) { printf("\n\t STACK FULL "); break; printf("\n\t ENTER DATA:::: "); scanf("%d",&n); sp++; a[sp]=n; Stack Example code in C if(ch==2) { printf("\n\t POPPED VALUE ::: %d",a[sp]); a[sp]=0; sp--; if(ch==3) { for(i=sp;i>=0;i--) { printf("\n\t %d",a[i]); getchar(); Copyrights: http://www.dailyfreecode.com/code/stack-array- 2417.aspx Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 10

Visual Paradigms Brooklyn Stack Java Applet Stack in Java Applets Centre Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 11

Bibliography http://www.wikipedia.org http://www.roseindia.net http://www.liv.ac.uk/hpc/htmlf90course/htmlf90coursenotesnode176.html http://www.algolist.net http://www.cosc.canterbury.ac.nz/mukundan/dsal/stackappl.html http://acc6.its.brooklyn.cuny.edu/~cis22/animations/tsang/html/stack/stack640.html Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 12

Ασκήσεις Άσκηση 1 Να υλοποιήσετε μια στοίβα χρησιμοποιώντας διασυνδεδεμένη λίστα. Κάθε στοιχείο της στοίβας πρέπει αποτελείται από έναν χαρακτήρα. Χρησιμοποιώντας τη στοίβα, να υλοποιήσετε πρόγραμμα που θα ελέγχει τη σωστή χρήση των παρενθέσεων σε μία αριθμητική παράσταση. Το πρόγραμμα θα διαβάζει μιαν αριθμητική παράσταση σαν συμβολοσειρά που αποτελείται από χαρακτήρες μεταβλητές, σύμβολα αριθμητικών πράξεων (+, *, /, ^), παρενθέσεις, και ενδεχομένως κάποια κενά. Το πρόγραμμα θα ελέγχει την αριθμητική παράσταση και θα αποφαίνεται σχετικά με τη σωστή χρήση των παρενθέσεων (και μόνο). Αν υπάρχει πρόβλημα, θα επισημαίνεται η πρώτη παρένθεση χωρίς ταίριασμα. Ζητούμενο: Να χρησιμοποιήσετε το παραπάνω πρόγραμμα για να ελέγξετε τις παρακάτω εκφράσεις ως προς τη σωστή χρήση των παρενθέσεων. 1. (a*(b+c)+d)*(d*(b+c+a)-(e*f)+d)*(a+b+c*(((r+e)-(u+i))*k+5*r*t)) 2. ((b+c-r)*r*k+d*(w+10))*(d*(b+c+a((s+r)))*a-(e*f)+d)*(a+b+c*(((r+e)- ((u+i))*k+5*r*t)) 3. (a+b(c*d)+(d(e)+a-(d/b+(a*g)))*(a+b(c*d)+(d(e)+a-(d/b+(a*g))))*r+f Η άσκηση είναι από το Εργαστήριο Δομών Δεδομένων του: Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Σχολή Θετικών Επιστημών, Πανεπιστήμιο Αιγαίου Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 13

Ασκήσεις Άσκηση 2 Υλοποιήστε κατάλληλο κώδικα χρησιμοποιώντας στοίβες, κατάλληλους αλγορίθμους ταξινόμησης και εύρεσης έτσι ώστε να προσομοιώσετε το γέμισμα και το άδειασμα ενός ψυγείου παγωτών όπου στόχος είναι να παίρνουμε πάντα τα ποιο φρέσκα παγωτά. Υπάρχουν 4 διαφορετικά είδη παγωτών. Θεωρήστε ότι το ψυγείο χωράει 40 παγωτά, 10 από κάθε είδος. Γέμισμα: Ελέγχεται το πόσα παγωτά λείπουν από κάθε είδος και μετά γεμίζει το ψυγείο με αυτά που λείπουν. Άδειασμα: Ο χρήστης δηλώνει τι είδος παγωτό/τα θέλει και πόσα από κάθε είδος π.χ. 1 παγωτό σοκολάτα ή 1 παγωτό σοκολάτα και 1 φράουλα ή 1 παγωτό σοκολάτα και 2 φράουλα. Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 14

Ασκήσεις για C 1. Να τροποποιηθεί το παράδειγμα σε C έτσι ώστε να λειτουργεί με τις συναρτήσεις pop(), push() και disp(). 2. Να γραφτεί ένα πρόγραμμα που διαβάζει μια ακολουθία 10 χαρακτήρων και την τυπώνει με αντίστροφη σειρά. Να χρησιμοποιηθούν δύο στοίβες (μία για το input και μία για το output) και οι λειτουργίες που υλοποιήθηκαν στην άσκηση 1. Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 15