https://csd.uoc.gr/~hy240b/current/submit.php

Σχετικά έγγραφα
ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος


ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

ΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

My Instagram Παρουσίαση Α Μέρους Προγραμματιστικής Εργασίας

Προγραµµατιστική Εργασία 1 ο Μέρος

HY-486 Αρχές Κατανεμημένου Υπολογισμού

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 2 ο Μέρος

Προγραμματιστική Εργασία Μέρος Β. Δρακωνάκης Κώστας Παπαϊωάννου Αντώνης

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 1 ο Μέρος

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 1 ο Μέρος

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 2 ο Μέρος

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 1 ο Μέρος

Προγραµµατιστική Εργασία 1 ο Μέρος

Προγραµµατιστική Εργασία 2 ο Μέρος

Προγραµµατιστική Εργασία - 2 ο Μέρος

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 2 ο και 3 ο Μέρος

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Slide 6 / 43. Slide 5 / 43. Α. Σαββίδης. Α. Σαββίδης. Slide 8 / 43. Slide 7 / 43. Α. Σαββίδης. Α. Σαββίδης HY340, 2009 HY340, 2009 HY340, 2009

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

4. Συνδεδεμένες Λίστες

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

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

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης

Πληροφορική 2. Δομές δεδομένων και αρχείων

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Διάλεξη 08: ΛίστεςΙΙ Κυκλικές Λίστες. Διδάσκων: Παναγιώτης Ανδρέου

HY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)

Insert(K,I,S) Delete(K,S)

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

Ο πίνακας συμβόλων (symbol table) είναι μία δομή, όπου αποθηκεύεται πληροφορία σχετικά με τα σύμβολα του προγράμματος

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

Δομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ»

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΕΞΑΜΗΝΟ

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 2 ο Μέρος

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Προγραμματισμός Ι (ΗΥ120)

PHP/MySQL και Project

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

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ

Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

Προγραμματισμός Δομές Δεδομένων

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

about social politics

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

turnin Lab4.pro

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο M. Χατζόπουλος. Προθεσμία: 19/01/2015

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Εισαγωγή στα Μέσα Κοινωνικής Δικτύωσης

Μπαλτάς Αλέξανδρος 21 Απριλίου 2015

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Φροντιστήριο 4 Σκελετοί Λύσεων

Εργαστηριακή Άσκηση 1

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Transcript:

Project HY240b - 1η Φάση Διδάσκουσα: Παναγιώτα Φατούρου Βοηθός: Νικόλαος Μπατσαράς Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Ηράκλειο, 09 Μαρτίου 2018

Εισαγωγή Διαδικαστικά Θεματολογία Δομές Χρηστών Δομές Tweets

Διαδικαστικά Θεματολογία Εισαγωγή Διαδικαστικά Θεματολογία Δομές Χρηστών Δομές Tweets

Διαδικαστικά Θεματολογία Πληροφορίες Σελίδα Μαθήματος: https://csd.uoc.gr/~hy240b Τρόπος Παράδοσης: Με το πρόγραμμα turnin Περισσότερες Πληροφορίες: https://csd.uoc.gr/~hy240b/current/submit.php Παράδοση: Δευτέρα, 01 Απριλίου 2018, ώρα 23:59 Διαθέσιμες Υλοποιήσεις: C ή Java Ερωτήσεις-Απορίες: hy240b-list@csd.uoc.gr Προσοχή: Compile/Run στα μηχανήματα της σχολής.

Διαδικαστικά Θεματολογία Εισαγωγή Διαδικαστικά Θεματολογία Δομές Χρηστών Δομές Tweets

Διαδικαστικά Θεματολογία Θέμα Προσομοιώση ενός μέσου κοινωνικής δικτύωσης παρόμοιο με το Twitter. Χρήστες που στέλνουν και διαβάζουν σύντομα μηνύματα, τα οποία ονομάζονται τουίτς (tweets) Ο κάθε χρήστης μπορεί να ακολουθεί (follow) άλλους χρήστες με σκοπό να εμφανίζονται τα tweets τους στην περιοχή του (Wall)

Διαδικαστικά Θεματολογία Θέμα Εχουμε λοιπόν 2 βασικές οντότητες: 1. Χρήστες 2. Tweets

Δομές Χρηστών Δομές Tweets Εισαγωγή Διαδικαστικά Θεματολογία Δομές Χρηστών Δομές Tweets

Δομές Χρηστών Δομές Tweets Γνωστικό Αντικείμενο Οι γνώσεις που θα χρειαστούν για την υλοποίηση της 1ης φάσης της εργασίας, μεταξύ άλλων, είναι οι εξής: Λίστες Αναζήτηση, Εισαγωγή, Διαγραφή, Συγχώνευση Ταξινομημένες λίστες Κόμβοι φρουροί

Δομές Χρηστών Δομές Tweets Ιδέα Η εργασία αποτελείται από 2 ομάδες δομών: 1. Δομές που αφορούν τους χρήστες 2. Δομές που αφορούν τα tweets

Δομές Χρηστών Δομές Tweets Εισαγωγή Διαδικαστικά Θεματολογία Δομές Χρηστών Δομές Tweets

Δομές Χρηστών Δομές Tweets Οι δομές χρηστών οργανώνονται ως εξής: Οι χρήστες αποθηκεύονται σε μία απλά συνδεδεμένη, ταξινομημένη σε αύξουσα διάταξη λίστα Ο κάθε χρήστης είναι ένα αντικείμενο τύπου struct user Κάθε χρήστης περιέχει ένα δείκτη στην αρχή μίας απλά συνδεδεμένης λίστας, τύπου struct follower, της οποίου κάθε κόμβος συμβολίζει έναν ακόλουθο του χρήστη αυτού Κάθε χρήστης περιέχει επίσης, κι ένα δείκτη στην αρχή μίας απλά συνδεδεμένης λίστας με κόμβο φρουρό, τύπου struct tweet w, της οποίου κάθε κόμβος συμβολίζει ένα tweet στην περιοχή (Wall) του χρήστη αυτού

Δομές Χρηστών Δομές Tweets Δομή Χρηστών Χρήστης - struct user: uid Αναγνωριστικό χρήστη (int) followers Δείκτης στη αρχή μίας λίστας, της οποίας ο κάθε κόμβος αποτελεί έναν follower του χρήστη αυτού (struct follower *) tweets Δείκτης στην αρχή μίας λίστας, της οποίας ο κάθε κόμβος αποτελεί ένα tweet στην περιοχή του χρήστη αυτού (struct tweet w *) next Δείκτης στον επόμενο κόμβο στην λίστα χρηστών (struct user *)

Δομές Χρηστών Δομές Tweets Δομή Οπαδών Follower - struct follower: uid Αναγνωριστικό χρήστη/οπαδού (int) next Δείκτης στον επόμενο κόμβο στην λίστα οπαδών (struct follower *)

Δομές Χρηστών Δομές Tweets Δομή Tweets Tweet - struct tweet w: tid Αναγνωριστικό tweet (int) uid Αναγνωριστικό χρήστη που δημοσίευσε το tweet (int) next Δείκτης στον επόμενο κόμβο στην λίστα των tweets (struct tweet w *)

Δομές Χρηστών Δομές Tweets

Δομές Χρηστών Δομές Tweets

Δομές Χρηστών Δομές Tweets Εισαγωγή Διαδικαστικά Θεματολογία Δομές Χρηστών Δομές Tweets

Δομές Χρηστών Δομές Tweets Οι δομές των tweets οργανώνονται ως εξής: Τα tweets αποθηκεύονται σε ένα πίνακα Κάθε θέση i του πίνακα είναι ένας δείκτης σε μία διπλά συνδεδεμένη, ταξινομημένη με βάση το timestamp λίστα που ονομάζεται λίστα tweets της κατηγορίας i και περιέχει όλα τα tweets με hashtag i Το κάθε κάθε tweet είναι ένα αντικείμενο τύπου struct tweet h

Δομές Χρηστών Δομές Tweets Δομή Tweets Tweet - struct tweet h: tid Αναγνωριστικό tweet (int) timestamp Ακέραιος που αντιστοιχεί στην ημερομηνία δημοσίευσης του tweet (int) time rel Ακέραιος αριθμός που αντιστοιχεί στην χρονική ισχύ ενός tweet (int) next Δείκτης στον επόμενο κόμβο στην λίστα των tweets (struct tweet h *) prev Δείκτης στον προηγούμενο κόμβο στην λίστα των tweets(struct tweet h *)

Δομές Χρηστών Δομές Tweets

Εισαγωγή Διαδικαστικά Θεματολογία Δομές Χρηστών Δομές Tweets

Ιδέα Ενα γεγονός αποτελεί μία ενέργεια την οποία εκτελεί το σύστημά μας, π.χ. Εισαγωγή ενός χρήστη Η δημοσίευση ενός tweet κ.τ.λ.

Πηγή Τα γεγονότα αυτά είναι καταχωρημένα σε κάποια αρχεία Τα αρχεία υπάρχουν στη σελίδα του μαθήματος Το πρόγραμμα κάνει parse αυτά τα αρχεία και εκτελεί τις συνάρτηση που αντιστοιχεί στο εκάστοτε γεγονός Δεν χρειάζεται να γραφτεί επιπλέον κώδικας για το χειρισμό των γεγονότων Το μόνο που λείπει είναι η υλοποίηση των συναρτήσεων

Μορφή Ενα γεγονός έχει την εξής μορφή: event id [arithmetic arguments [...]]

Εισαγωγή Διαδικαστικά Θεματολογία Δομές Χρηστών Δομές Tweets

Register Εισαγωγή ενός νέου χρήστη στο σύστημα. Εχει την εξής μορφή: R uid Ορίσματα: uid Αναγνωριστικό του νέου χρήστη

Register Κατά το γεγονός αυτό: 1. Θα γίνει εισαγωγή ενός νέου χρήστη με αναγνωριστικό uid στη λίστα χρηστών 2. Προσοχή: Μετά από κάθε εισαγωγή, η λίστα χρηστών θα πρέπει να παραμένει ταξινομημένη

Subscribe Εγγραφή του χρήστη με αναγνωριστικό uid 2 στη λίστα των followers του χρήστη με αναγνωριστικό uid 1. Εχει την εξής μορφή: S uid 1 uid 2 Ορίσματα: uid 1 Αναγνωριστικό του χρήστη που έλαβε έναν νέο follower uid 2 Αναγνωριστικό του χρήστη που κάνει follow

Subscribe Κατά το γεγονός αυτό: 1. θα αναζητήσετε στη λίστα χρηστών το χρήστη με αναγνωριστικό uid 1 2. θα εισάγετε στη λίστα των followers ένα νέο κόμβο με αναγνωριστικό uid 2 3. Προσοχή: Μετά από κάθε εισαγωγή, η λίστα των followers θα πρέπει να παραμένει ταξινομημένη

Tweet Δημοσίευση ενός tweet με αναγνωριστικό tid από το χρήστη με αναγνωριστικό uid. Εχει την εξής μορφή: Ορίσματα: T uid tid hashtag timestamp time relevance uid Αναγνωριστικό του χρήστη που δημοσίευσε το tweet tid Αναγνωριστικό του tweet hashtag Κατηγορία στην οποία ανοίκει το tweet timestamp Χρονική στιγμή την οποία δημοσιέυτηκε το tweet time rel Χρονική ισχύ του tweet

Tweet Κατά το γεγονός αυτό: 1. Θα αναζητήσετε στη λίστα χρηστών το χρήστη με αναγνωριστικό uid 2. Θα εισάγετε στη λίστα των tweets του, ένα νέο κόμβο με αναγνωριστικό tid 3. Θα διατρέξετε τη λίστα των followers του χρήστη αυτού και για κάθε κόμβο στη λίστα: 3.1 Θα αναζητείτε το χρήστη με το τρέχον uid στη λίστα χρηστών 3.2 Αφού τον εντοπίσετε, θα εισάγετε στη λίστα των tweets του, ένα νέο κόμβο με αναγνωριστικό tid 3.3 Προσοχή: Η διαδικασία αυτή, θα πρέπει να εκτελείται σε χρόνο O(n), όπου n είναι το πλήθος των κόμβων στη λίστα χρηστών 4. Θα εισάγετε και ένα νέο κόμβο στον πίνακα κατηγοριών

Tweet: Παράδειγμα Εστω γεγονός T 20 700 2 20180416 3

Unsubscribe Διαγραφή του χρήστη με αναγνωριστικό uid 2 από τη λίστα των followers του χρήστη με αναγνωριστικό uid 1. Εχει την εξής μορφή: U uid 1 uid 2 Ορίσματα: uid 1 Αναγνωριστικό του χρήστη που έχασε ένα follower uid 2 Αναγνωριστικό του χρήστη που κάνει unsubscribe

Unsubscribe Κατά το γεγονός αυτό: 1. Θα αναζητήσετε στη λίστα χρηστών το χρήστη με αναγνωριστικό uid 1 2. Θα αφαιρέσετε από λίστα των followers τον κόμβο με αναγνωριστικό uid 2 3. Θα αναζητήσετε στη λίστα χρηστών το χρήστη με αναγνωριστικό uid 2 4. Θα διατρέξετε τη λίστα των tweets του χρήστη με αναγνωριστικό uid 2 5. Θα αφαιρέσετε από αυτή τους κόμβους που έχουν το πεδίο uid ίσο με uid 1

Unsubscribe: Παράδειγμα Εστω γεγονός U 10 20

Delete Διαγραφή του χρήστη με αναγνωριστικό uid από το σύστημα. Εχει την εξής μορφή: D uid Ορίσματα: uid Αναγνωριστικό του χρήστη προς διαγραφή

Delete Κατά το γεγονός αυτό: 1. Θα αναζητήσετε στη λίστα χρηστών το χρήστη με αναγνωριστικό uid 2. Θα διαγράψετε όλα τα στοιχεία της λίστας tweets αυτού του χρήστη 3. Θα διατρέξετε τη λίστα των οπαδών και για κάθε κόμβο: 3.1 Θα καλείτε κατάλληλα τη συνάρτηση που υλοποιεί το γεγονός unsubscribe 4. Θα διαγράφετε από λίστα χρηστών το χρήστη με αναγνωριστικό uid

Delete: Παράδειγμα Εστω γεγονός D 10

Lookup Αναζήτηση ενός tweet με αναγνωριστικό tid στη λίστα των tweets του χρήστη με αναγνωριστικό uid. Εχει την εξής μορφή: L uid tid Ορίσματα: uid Αναγνωριστικό του χρήστη tid Αναγνωριστικό του tweet

Lookup Κατά το γεγονός αυτό: 1. Θα αναζητήσετε στη λίστα χρηστών το χρήστη με αναγνωριστικό uid 2. Θα αναζητήσετε στη λίστα των tweets του τον κόμβο με αναγνωριστικό tid

Merge Συγχώνευση των tweets στον πίνακα Hashtags που ανήκουν στην κατηγορία hashtag 1 ή hashtag 2. Εχει την εξής μορφή: M hashtag 1 hashtag 2 Ορίσματα: hashtag 1 Κατηγορία 1 hashtag 2 Κατηγορία 2

Merge Κατά το γεγονός αυτό: 1. Θα αναζητήσετε στον πίνακα Hashtags τις δύο λίστες tweets που αντιστοιχούν στα παραπάνω hashtags 2. Θα συνενώσετε τις λίστες αυτές με βάση το πεδίο timestamp 3. Προσοχή: Η διαδικασία αυτή θα πρέπει να ολοκληρώνεται σε χρονική πολυπλοκότητα O(n 1 + n 2 ), όπου n 1 και n 2 είναι το πλήθος των κόμβων των λιστών tweets με hashtags hashtag 1 και hashtag 2, αντίστοιχα

Filter Αναζήτηση των tweets που ανήκουν στην κατηγορία hashtag, τα οποία ήταν στην επικαιρότητα (trend) την ίδια χρονική περίοδο με το tweet με αναγνωριστικό tid. Εχει την εξής μορφή: F tid hashtag Ορίσματα: tid Αναγνωριστικό του tweet hashtag Κατηγορία του tweet

Filter Κατά το γεγονός αυτό: 1. Θα αναζητήσετε στον πίνακα Hashtags τη λίστα των tweets της κατηγορίας hashtags 2. Θα εντοπίσετε το tweet με αναγνωριστικό tid 3. Θα εξετάσετε το πεδίο time relevance 4. Ξεκινώντας από το tweet αυτό, θα κάνετε κατάλληλη διάσχιση zig-zag στη λίστα προκειμένου να τυπώσετε τα tweets των οποίων το πεδίο timestamp έχει τιμή στο διάστημα: [timestamp tid time rel tid, timestamp tid + time rel tid ]

Filter: Παράδειγμα Εστω γεγονός F 300 2

Print Users Εκτύπωση όλων των χρηστών από τη λίστα χρηστών. Εχει την εξής μορφή: X

Print Tweets Εκτύπωση όλων των tweets του πίνακα Hashtags. Εχει την εξής μορφή: Y

Thanks!