Δομές Δεδομένων
Συντονιστές: Ryu, markelos, meleneemil, Nasia!
- pao132003
- Δημοσιεύσεις: 1904
- Εγγραφή: Παρ Νοέμ 03, 2006 10:06 am
- Real Name: Γιάννης
- Gender: Male
- Τοποθεσία: Αθήνα(ως επί το πλείστον)
- Επικοινωνία:
μόλις τα προσέθεσα στο εργαλείο. (μη μου πείτε ότι άργησα!)
No battle is ever won he said. They are not even fought. The field only reveals to man his own folly and despair, and victory is an illusion of philosophers and fools.
-William Faulkner, novelist (1897-1962)
H πιο επαναστατική πράξη σήμερα (2013) είναι να κρατήσεις ένα σχολείο ανοικτό.
-Άγνωστου
-William Faulkner, novelist (1897-1962)
H πιο επαναστατική πράξη σήμερα (2013) είναι να κρατήσεις ένα σχολείο ανοικτό.
-Άγνωστου
-
nef
- Δημοσιεύσεις: 47
- Εγγραφή: Κυρ Σεπ 30, 2007 6:23 pm
- Real Name: nefeli
- Gender: Female
- Facebook ID: 0
domes dedomenon
thanks a lot gia ta limena
oi selides pou anevases einai 4 synolika..mipos leipei kamia?gt stin teleytaia selida to teleytaio erotima kovetai..
- theos
- Δημοσιεύσεις: 762
- Εγγραφή: Κυρ Νοέμ 05, 2006 4:53 am
- Real Name: Αριστοτέλης-Εμμανουήλ Θάνος-Φίλης (Μάνος) ge04017
- Gender: Male
- Τοποθεσία: Alwaysland
Έχω μια ιδέα, αυτό που έγραψα δηλαδή.
Θέμα 5o
[/hide]
Αυτό έκανα εγώ... Τώρα, μπορεί να υπάρχει και πολύ καλύτερος χρονικά αλγόριθμος. Το παραπάνω είναι ψευδογλώσσα. Να πω και περίπου τι κάνει γιατί αλλιώς φαίνεται βουνό
Με τη μέθοδο getNext παίρνουμε την επόμενη λέξη. Η ιδέα είναι να αποθηκεύουμε τις λέξεις σε ένα διάνυσμα k και τις φορές που εμφανίζονται σε ένα διάνυσμα a
Οπότε σε κάθε καινούργια λέξη που παίρνουμε ελέγχουμε αν υπάρχει ήδη στο διάνυσμα k και αν υπάρχει ας πούμε στη θέση 3 τότε αυξάνουμε το a[3] κατά 1.
Αν δεν υπάρχει (είναι η πρώτη φορά που εμφανίζεται) τότε την τοποθετούμε στο τέλος του διανύσματος k και στο τέλος του διανύσματος α προσθέτουμε την μονάδα.
Μόλις τελειώσουν οι λέξεις τοποθετούμε σε μια ουρά προτεραιότητας τα στοιχεία όπου σαν data έχουν την λέξη και σαν κλειδί έχουν τον αριθμό των φορών που υπάρχει η λέξη. Μετά εκτυπώνουμε αυτά που θέλει όπως φαίνεται στον κώδικα. Χοντρικά αυτό κάνω με αυτόν τον αλγόριθμο...
Edit: Έκρυψα τον αλγόριθμο για να μην τον διαβάζει κάποιος άδικα
-Wizard
Θέμα 5o
Κώδικας: Επιλογή όλων
int c;
entry=new PQentry;
PQ= new PriorityQueue;
char[] k[];
int[] a[];
char z;
int l=1;
boolean diakritostoixeio=true;
int m=1;
k[0]=getnext();
a[0]=1;
while (getNext()=!null)
{ z=getNext();
for (0<i<=k.length)
{ if (z=k[i])
{ a[i]=a[i]+1;
l=l+1;
diakritostoixeio=false;
break; *bgainei eksw apo to for*
}
}
if (diakritostoixeio==true)
{ k[a.length]=z;
a[k.length-1]=1
}
m=m+1
}
for (0<i<a>c)
{ for (0<i<c)
{ entry=PQ.findMax;
System.out.println(entry.getkey()+entry.getdata)
PQ.deleteMax
}
}
else
{ for (0<i<a.length)
{ entry=PQ.findMax;
System.out.println(entry.getkey()+entry.getdata())
PQ.deleteMax;
}
}Αυτό έκανα εγώ... Τώρα, μπορεί να υπάρχει και πολύ καλύτερος χρονικά αλγόριθμος. Το παραπάνω είναι ψευδογλώσσα. Να πω και περίπου τι κάνει γιατί αλλιώς φαίνεται βουνό
Με τη μέθοδο getNext παίρνουμε την επόμενη λέξη. Η ιδέα είναι να αποθηκεύουμε τις λέξεις σε ένα διάνυσμα k και τις φορές που εμφανίζονται σε ένα διάνυσμα a
Οπότε σε κάθε καινούργια λέξη που παίρνουμε ελέγχουμε αν υπάρχει ήδη στο διάνυσμα k και αν υπάρχει ας πούμε στη θέση 3 τότε αυξάνουμε το a[3] κατά 1.
Αν δεν υπάρχει (είναι η πρώτη φορά που εμφανίζεται) τότε την τοποθετούμε στο τέλος του διανύσματος k και στο τέλος του διανύσματος α προσθέτουμε την μονάδα.
Μόλις τελειώσουν οι λέξεις τοποθετούμε σε μια ουρά προτεραιότητας τα στοιχεία όπου σαν data έχουν την λέξη και σαν κλειδί έχουν τον αριθμό των φορών που υπάρχει η λέξη. Μετά εκτυπώνουμε αυτά που θέλει όπως φαίνεται στον κώδικα. Χοντρικά αυτό κάνω με αυτόν τον αλγόριθμο...
Edit: Έκρυψα τον αλγόριθμο για να μην τον διαβάζει κάποιος άδικα
-Wizard
Λογική είναι η τέχνη να κάνεις λάθος με αυτοπεποίθηση!!!
- theos
- Δημοσιεύσεις: 762
- Εγγραφή: Κυρ Νοέμ 05, 2006 4:53 am
- Real Name: Αριστοτέλης-Εμμανουήλ Θάνος-Φίλης (Μάνος) ge04017
- Gender: Male
- Τοποθεσία: Alwaysland
Άκυρος ο παραπάνω αλγόριθμος. Βαθμολογήθηκε με 0/2. Ο Συμβώνης ήθελε να λυθεί μόνο με πίνακα συμβόλων και παρόλο που είναι προγραμματιστικά σωστός τον έπιασε όλο λάθος. Πριν δώσουμε, αν καταφέρω να τον κάνω θα γράψω τον σωστό χρησιμοποιώντας πίνακα συμβόλων.
Χαιρετώ
Χαιρετώ
Λογική είναι η τέχνη να κάνεις λάθος με αυτοπεποίθηση!!!
-
nikolakisxa
- Δημοσιεύσεις: 112
- Εγγραφή: Κυρ Μάιος 20, 2007 11:17 am
- Real Name: Nikolas Xatzis
- Gender: Male
- Facebook ID: 0
- Τοποθεσία: Kifisia
Re: Δομές Δεδομένων
hi oloi....dwthike kai i prwti ergasia pros paradosi....mipws exei kaneis idees epilisis....?
- pantazi
- Δημοσιεύσεις: 26
- Εγγραφή: Τρί Ιουν 17, 2008 2:25 pm
- Real Name: PANTAZI IRO
- Gender: Female
- Facebook ID: 0
Ασκήσεις στις Δομές Δεδομένων ΕΠΕΙΓΟΝ!!!
Ελπίζω να διαβαστεί εγκαίρως το μήνυμά μου. Υπάρχει κάποιος, ο οποίος να έχει κάνει τις ασκήσεις προς παράδοση του κ. Συμβώνη για τις Δομές Δεδομένων και να μπορεί να τις στείλει ή να τις ανεβάσει; Πρέπει να τις παραδώσουμε μέχρι την Παρασκευή. Αν έχει κάποιος την ευγενή καλωσύνη να βοηθήσει... Ευχαριστώ!
Τελευταία επεξεργασία από το μέλος timos_m την Παρ Σεπ 18, 2009 6:13 pm, έχει επεξεργασθεί 1 φορά συνολικά.
Λόγος: Merged
Λόγος: Merged
Re: Ασκήσεις στις Δομές Δεδομένων ΕΠΕΙΓΟΝ!!!
nai paidia opoios mporei as tis anevasei giati paizei na valei kai kanena thema apo aftes!SOS!!!!
- kostas213
- Forum Administrator

- Δημοσιεύσεις: 1531
- Εγγραφή: Τρί Νοέμ 28, 2006 8:03 pm
- Real Name: Κωνσταντίνος
- Gender: Male
- Τοποθεσία: Zürich
Re: Δομές Δεδομένων
Δόθηκε παράταση για την 2η εργαστηριακή άσκηση. Τώρα μπορούμε να την παραδόσουμε μέχρι τη Δευτέρα (ρωτήσαμε σήμερα τον Συμβώνη). 
Re: Δομές Δεδομένων
re paidia mipws kserei kaneis na lynei to thema me tis parentheseis...?an mporeite as to lysei kaneis kai as to anebasei...oso gia tous swrous kai ta dendra...den einai tpt...apla to thema me tis parentheseis an kserei kapoios giati kaigomaste.... thanx...
- theos
- Δημοσιεύσεις: 762
- Εγγραφή: Κυρ Νοέμ 05, 2006 4:53 am
- Real Name: Αριστοτέλης-Εμμανουήλ Θάνος-Φίλης (Μάνος) ge04017
- Gender: Male
- Τοποθεσία: Alwaysland
Re: Δομές Δεδομένων
Το θέμα με τις παρενθέσεις:
Χρησιμοποιείς μια στοίβα s. Κάθε φορά που διαβάζεις "(" κάνεις push Χ. Κάθε φορά που διαβάζεις ")" κάνεις pop. Αν η στοίβα είναι άδεια στο τέλος τότε η έκφραση που δόθηκε είναι σωστή. Αυτή είναι η ιδέα της λύσης. Σύμφωνα με αυτό δεν είναι δύσκολο να γράψετε τον αλγόριθμο.
Παράδειγμα: ((())()())
Βλέπει τρεις αριστερές και τις κάνει push. Οπότε η στοίβα έχει μέσα {Χ,Χ,Χ}
Βλέπει δύο δεξιές και κάνει δύο φορές pop. Οπότε η στοίβα έχει: {Χ}
Με την ίδια λογική λειτουργεί οπότε απλώς γράφω τι θα έχει η στοίβα σε κάθε βήμα
{Χ,Χ}
{Χ}
{Χ,Χ}
{Χ}
{ }
Η στοίβα είναι άδεια στο τέλος (IsEmpty==true) και άρα ήταν σωστή η έκφραση
Στον αλγόριθμο πρέπει να προστεθεί η περίπτωση που δεχόμαστε δεξιά παρένθεση και η στοίβα είναι άδεια. Σε αυτήν την περίπτωση επιστρέφει ως αποτέλεσμα ότι η έκφραση δεν είναι σωστή
Στο θέμα με τις παρενθέσεις και τις αγκύλες, κάνει push X σε "(" και push Υ σε "[". Και όταν δέχεται ")" κάνει pop. Αν το στοιχείο που έγινε pop ήταν Χ συνεχίζει κανονικά. Αν ήταν Υ τερματίζει λέγοντας ότι η έκφραση δεν είναι σωστή και αντίστοιχα αν δεν υπήρχε στοιχείο να γίνει pop (αν δηλαδή ήταν άδεια η στοίβα)
Καλό διάβασμα
Χρησιμοποιείς μια στοίβα s. Κάθε φορά που διαβάζεις "(" κάνεις push Χ. Κάθε φορά που διαβάζεις ")" κάνεις pop. Αν η στοίβα είναι άδεια στο τέλος τότε η έκφραση που δόθηκε είναι σωστή. Αυτή είναι η ιδέα της λύσης. Σύμφωνα με αυτό δεν είναι δύσκολο να γράψετε τον αλγόριθμο.
Παράδειγμα: ((())()())
Βλέπει τρεις αριστερές και τις κάνει push. Οπότε η στοίβα έχει μέσα {Χ,Χ,Χ}
Βλέπει δύο δεξιές και κάνει δύο φορές pop. Οπότε η στοίβα έχει: {Χ}
Με την ίδια λογική λειτουργεί οπότε απλώς γράφω τι θα έχει η στοίβα σε κάθε βήμα
{Χ,Χ}
{Χ}
{Χ,Χ}
{Χ}
{ }
Η στοίβα είναι άδεια στο τέλος (IsEmpty==true) και άρα ήταν σωστή η έκφραση
Στον αλγόριθμο πρέπει να προστεθεί η περίπτωση που δεχόμαστε δεξιά παρένθεση και η στοίβα είναι άδεια. Σε αυτήν την περίπτωση επιστρέφει ως αποτέλεσμα ότι η έκφραση δεν είναι σωστή
Στο θέμα με τις παρενθέσεις και τις αγκύλες, κάνει push X σε "(" και push Υ σε "[". Και όταν δέχεται ")" κάνει pop. Αν το στοιχείο που έγινε pop ήταν Χ συνεχίζει κανονικά. Αν ήταν Υ τερματίζει λέγοντας ότι η έκφραση δεν είναι σωστή και αντίστοιχα αν δεν υπήρχε στοιχείο να γίνει pop (αν δηλαδή ήταν άδεια η στοίβα)
Καλό διάβασμα
Λογική είναι η τέχνη να κάνεις λάθος με αυτοπεποίθηση!!!
Re: Δομές Δεδομένων
eisai apla theos...(den einai tyxaio to nickname..) etoimasou to septembri kai gia algorithmous.....
Re: Δομές Δεδομένων
re theos gia to thema me tis parentheseis kai tis agkyles...otan synanta ')' kanei pop to X wraia...otan synanta '}' kanei pop to Y. den termatizei pou les..ase pou i prwti ekfrasi (())() einai lathos symfwna me ta legomena tou...gt mesa se ena zeugari agkylwn parenthesewn prepei na exoume swsti ekfrasi.an paroume tis parentheseis 1 kai 3 tha exoun mesa tous mono tin (...ara einai lathos i ekfrasi auti...i lathos ta lew egw..?gia tsekare to...kai an ginetai kaneis na eksigisei auto me ta 'insert' thema 4 epanaliptikis 2005.thanx..