Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό pefraimi » 21 Δεκ 2020, 12:17

Εδώ μπορείτε να υποβάλετε ερωτήσεις, απορίες ή παρατηρήσεις σχετικές με την Εργασία 3.
pefraimi
Sr. Member
 
Δημοσιεύσεις: 333
Εγγραφή: 01 Νοέμ 2008, 14:59

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό trimidis » 23 Δεκ 2020, 01:34

Xαιρεται κύριε Ευφραιμιδη και καλά Χριστούγεννα . Ήθελα να ρωτήσω ποια η διαφορά της dfsNodeSequence με την ArrayList η Hashset που έχουμε φτιάξει κατά την DFS αναζήτηση με τους κόμβους που έχουμε επισκευθεί, επιπλέον η ακολουθία των κόμβων πρέπει να είναι ταξινομημένη για να θεωρηθεί σωστή;
trimidis
Newbie
 
Δημοσιεύσεις: 2
Εγγραφή: 19 Οκτ 2019, 14:52

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό achatzit » 23 Δεκ 2020, 09:11

Αν χρησιμοποιήσατε άλλη ArrayList για την αποθήκευση των κόμβων που ανακαλύπτετε κατά την DFS αναζήτηση, στο τέλος πρέπει να επιστρέψετε το αποτέλεσμα μέσω της dfsNodeSequence που επίσης είναι τύπου ArrayList<Long>.
Η ακολουθία των κόμβων πρέπει να είναι με την σειρά που τους επισκέπτεστε όταν κάνετε μια DFS διάσχιση.
Η HashSet δεν αποθηκεύει τα στοιχεία με την σειρά που τα εισάγετε. Απλά τα κρατάει και μπορείτε εύκολα να αναζητήσετε ένα στοιχείο της.
achatzit
Newbie
 
Δημοσιεύσεις: 8
Εγγραφή: 29 Μαρ 2019, 12:34

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό evanpapa49 » 23 Δεκ 2020, 22:09

Άμα δεν εχουμε κατεβασει το eclipse αλλά το Intellij IDEA ακολουθούμε την ιδια διαδικασία με τις διαφάνεις?
evanpapa49
Newbie
 
Δημοσιεύσεις: 1
Εγγραφή: 14 Οκτ 2019, 18:55

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό achatzit » 24 Δεκ 2020, 16:47

evanpapa49 έγραψε:Άμα δεν εχουμε κατεβασει το eclipse αλλά το Intellij IDEA ακολουθούμε την ιδια διαδικασία με τις διαφάνεις?


Αν και προτείνουμε το eclipse για λόγους ομοιομορφίας, μπορείς να το τρέξεις και με το Intellij IDEA, αρκεί να κάνεις εισαγωγή το project και να το εκτελέσεις κάνοντας Run την XGraphClient κλάση. Στο πλαίσιο διαλόγου πρέπει να βάλεις στο 'Enviroment variables' τις παραμέτρους που είπαμε.
Προϋπόθεση βέβαια να έχεις κάνει εγκατάσταση το κατάλληλο JDK.
achatzit
Newbie
 
Δημοσιεύσεις: 8
Εγγραφή: 29 Μαρ 2019, 12:34

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό dimister2 » 25 Δεκ 2020, 20:36

Καλησπέρα. Για να κάνουμε τη dfs, με ποια σειρά βάζουμε στη στοίβα τους γειτονικούς κόμβους που παίρνουμε από τη μέθοδο getNeighborsOf(); Επειδή η σειρά που θα τους βάλουμε επηρεάζει και το τελικό dfsNodeSequence.
dimister2
Newbie
 
Δημοσιεύσεις: 1
Εγγραφή: 28 Δεκ 2014, 19:07

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό achatzit » 26 Δεκ 2020, 09:22

dimister2 έγραψε:Καλησπέρα. Για να κάνουμε τη dfs, με ποια σειρά βάζουμε στη στοίβα τους γειτονικούς κόμβους που παίρνουμε από τη μέθοδο getNeighborsOf(); Επειδή η σειρά που θα τους βάλουμε επηρεάζει και το τελικό dfsNodeSequence.


Ο αλγόριθμος DFS που θα υλοποιήσετε πρέπει να επιστρέψει μέσω της dfsNodeSequence, την ακολουθία των κόμβων που επισκέπτεται με λεξικογραφική σειρά. Οπότε ανάλογα με την αρχή λειτουργίας της στοίβας, πρέπει να εισάγετε τα στοιχεία σε αυτήν με την κατάλληλη σειρά.
achatzit
Newbie
 
Δημοσιεύσεις: 8
Εγγραφή: 29 Μαρ 2019, 12:34

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό pefraimi » 26 Δεκ 2020, 10:01

Καλησπέρα. Για να κάνουμε τη dfs, με ποια σειρά βάζουμε στη στοίβα τους γειτονικούς κόμβους που παίρνουμε από τη μέθοδο getNeighborsOf(); Επειδή η σειρά που θα τους βάλουμε επηρεάζει και το τελικό dfsNodeSequence.


Ο αλγόριθμος DFS που θα υλοποιήσετε πρέπει να επιστρέψει μέσω της dfsNodeSequence, την ακολουθία των κόμβων που επισκέπτεται με λεξικογραφική σειρά. Οπότε ανάλογα με την αρχή λειτουργίας της στοίβας, πρέπει να εισάγετε τα στοιχεία σε αυτήν με την κατάλληλη σειρά.


Μπορείτε να δείτε τα παραδείγματα εκτέλεσης dfs στις διαφάνειες του μαθήματος και του εργαστηρίου.
Επιπλέον μπορείτε να δείτε και τα παραδείγματα εκτέλεσης του GraphSearch που αναρτήθηκαν στο eclass.
pefraimi
Sr. Member
 
Δημοσιεύσεις: 333
Εγγραφή: 01 Νοέμ 2008, 14:59

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό pefraimi » 26 Δεκ 2020, 20:28

Οταν το τρέχω στον server για την dfsNodeSequence μου βγάζει το error :
"dfs sequence: Error at position 1" , πως γίνεται αυτό καθώς ο πρώτος
κόμβος προκύπτει από την συνάρτηση που μας προκαθορίσατε εσείς;


Η αρίθμηση των positions ξεκινάει από την τιμή 0. Επομένως το λάθος είναι
στον δεύτερο κόμβο της ακολουθίας. Στου Αλγόριθμους και γενικότερα
στην Επιστήμη Υπολογιστών συνήθως η αρίθμηση ξεκινάει από το μηδέν.

Ο αλγόριθμος DFS θα ξεκινήσει από την πρώτη κορυφή και θα επισκεφθεί
πρώτα τη γειτονική κορυφή που προηγείται αριθμητικά, έχει δηλαδή το
μικρότερο ID.
pefraimi
Sr. Member
 
Δημοσιεύσεις: 333
Εγγραφή: 01 Νοέμ 2008, 14:59

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό lets_go_get_it » 03 Ιαν 2021, 12:39

Καλησπέρα, όταν κάνω add στην eulerData τους κόμβους μου, το πρόγραμμα δεν τρέχει και εμφανίζει java.lang.NullPointerException
lets_go_get_it
Newbie
 
Δημοσιεύσεις: 2
Εγγραφή: 08 Ιαν 2020, 17:57

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό achatzit » 03 Ιαν 2021, 17:56

lets_go_get_it έγραψε:Καλησπέρα, όταν κάνω add στην eulerData τους κόμβους μου, το πρόγραμμα δεν τρέχει και εμφανίζει java.lang.NullPointerException


Με την res.eulerData θα επιστρέψετε μία ArrayList που περιέχει, είτε τους κόμβους που αποτελούν κύκλο Euler, είτε το μονοπάτι Euler, είτε τους κόμβους με μονό βαθμό.
Αν θέλετε να δουλέψετε πάνω σε αυτήν πρέπει να την αρχικοποιήσετε με res.eulerData = new ArrayList<Long>();
Αλλιώς, καλό θα ήταν να αποθηκεύατε αυτούς τους κόμβους σε δικές σας ArrayList και ανάλογα με το αποτέλεσμα να τις περνούσατε στην res.eulerData, η οποία θα επιστρέψει το αποτέλεσμα στον server.
Τελευταία επεξεργασία από achatzit και 03 Ιαν 2021, 19:41, έχει επεξεργασθεί 1 φορά/ες συνολικά
achatzit
Newbie
 
Δημοσιεύσεις: 8
Εγγραφή: 29 Μαρ 2019, 12:34

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό pefraimi » 03 Ιαν 2021, 18:46


Καλησπέρα, όταν κάνω add στην eulerData τους κόμβους μου, το πρόγραμμα δεν τρέχει και εμφανίζει java.lang.NullPointerException


Το αντικείμενο res.eulerData δεν είναι αρχικοποιημένο. Αν πρόκειται να κάνετε πράξεις πάνω σε αυτό θα πρέπει πρώτα να εκτελέσετε res.eulerData = new ArrayList<Long>(); (Σημείωση: Στην έκδοση 1.02 του Project που θα αναρτηθεί θα γίνεται αυτόματα η αρχικοποίηση στον Constructor της κλάσης Result.)

Διαφορετικά, εάν έχετε αποθηκεύσει το αποτέλεσμα σε ένα άλλο αντικείμενο πχ. apotelesma τύπου ArrayList<Long>()
μπορείτε απλά να εκτελέσετε res.eulerData = apotelesma;
pefraimi
Sr. Member
 
Δημοσιεύσεις: 333
Εγγραφή: 01 Νοέμ 2008, 14:59

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό chrischatz » 06 Ιαν 2021, 22:18

Εάν έχουμε ολοκληρώσει την εργασία με κάποια παλαιότερη version του project π.χ 1.01 θα πρέπει να ξανατρέξουμε τον κώδικά μας ώστε να μας δώσει εκ νέου proof of participation ή δεν χρειάζεται?
chrischatz
Newbie
 
Δημοσιεύσεις: 2
Εγγραφή: 15 Οκτ 2020, 22:04

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό pefraimi » 06 Ιαν 2021, 22:43

Εάν έχουμε ολοκληρώσει την εργασία με κάποια παλαιότερη version του project π.χ 1.01 θα πρέπει να ξανατρέξουμε τον κώδικά μας ώστε να μας δώσει εκ νέου proof of participation ή δεν χρειάζεται?


Αν είναι επιτυχής η εκτέλεση, δεν θα παίξει ρόλο εάν είναι η έκδοση 1.00, η 1.01 ή η 1.02 που μόλις αναρτήθηκε.
Σύμφωνα με την εκφώνηση όμως η περίοδος για τις επίσημες εκτελέσεις ξεκινάει αύριο 7/1/2021.
Επομένως, είναι προτιμότερο να πάρετε proof of participation από αύριο και μετά.
pefraimi
Sr. Member
 
Δημοσιεύσεις: 333
Εγγραφή: 01 Νοέμ 2008, 14:59

Re: Αλγόριθμοι και Δομές Δεδομένων [2020-21]: Εργασία 3

Δημοσίευσηαπό ioannab » 07 Ιαν 2021, 04:08

Θέλω να μετατρέψω έναν πίνακα long σε ArrayList<Long>, ώστε να διατηρείται η σειρά των στοιχείων του πίνακα, να έχω πρόσβαση σε αυτά και να μπορώ να τα διαγράψω.

Ο πίνακας προς μετατροπή είναι:
Κώδικας: Επιλογή όλων
 long [] array ;
(Η αρχικοποίηση έχει γίνει σε άλλο σημείο)


Κώδικας που βρήκα για την μετατροπή:
Κώδικας: Επιλογή όλων
 ArrayList <Long> arrayInList = new ArrayList (Arrays.asList(array));


Το λάθος εντοπίζεται στην σύνταξη του κώδικα μετατροπής σε συνδυασμό με την συνάρτηση Arrays.asList(array). Έχω κάνει αρκετές προσπάθειες πειραματιζόμενη με διαφορετικές μορφές σύνταξης του κώδικα μετατροπής, αλλά συνεχώς μου βγάζει σφάλμα.

Μήπως μπορείτε να βοηθήσετε;

Ευχαριστώ πολύ
ioannab
Newbie
 
Δημοσιεύσεις: 1
Εγγραφή: 07 Φεβ 2020, 16:30

Επόμενο

Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 3 επισκέπτες