Skip to content

Instantly share code, notes, and snippets.

@mixstef
mixstef / README.md
Last active August 29, 2015 14:11
Δυαδικό αρχείο vs αρχείο κειμένου

Εγγραφή τριών ακεραίων (125, 34, -7) σε αρχείο:

  • ως δυαδικό αρχείο
  • ως αρχείο κειμένου

Σε σχόλιο το αποτέλεσμα (hexdump).

@mixstef
mixstef / README.md
Last active August 29, 2015 14:11
Διασχίσεις γράφων και δένδρων

Γράφοι και δένδρα

Παραδείγματα διάσχισης

  • Διάσχιση γράφου DFS και BFS (traversals.py)
  • Προδιατεταγμένη, μεταδιατεταγμένη και ενδοδιατεταγμένη διάσχιση δυαδικού δένδρου (order-processing.py)
  • Υπολογισμός δένδρου αριθμητικής έκφρασης με μεταδιατεταγμένη διάσχιση (postorder-computing.py)
@mixstef
mixstef / README.md
Last active August 29, 2015 14:11
Δυαδική αναζήτηση και ταξινόμηση

Δυαδική αναζήτηση

Σε ταξινομημένη λίστα (binsearch.py).

Ταξινόμηση

  • Insertion sort (inssort.py)
  • Αναδρομικός quick sort (qsort.py)

Δυαδικό δέντρο αναζήτησης

(binsearch-tree.py)

  • Κόμβοι και Δέντρο
  • Εισαγωγή κλειδιού, τιμής
  • Εκτύπωση δέντρου
  • Αναζήτηση κλειδιού
@mixstef
mixstef / README.md
Last active March 15, 2018 19:16
Παραδείγματα ad-hoc λεκτικής ανάλυσης με πίνακα μεταβάσεων

Παραδείγματα ad-hoc λεκτικής ανάλυσης με πίνακα μεταβάσεων

  • adhoclex2a.py: Απλό παράδειγμα αποδοχής των "term","test" and "long" strings.
@mixstef
mixstef / pydot-test.py
Last active February 27, 2020 11:11
Παράδειγμα χρήσης του module pydot
import pydot
# create the pydot directed graph
g = pydot.Dot(graph_type='digraph',splines='true',overlap='false',size='80.0,80.0')
# add a graph node
node = pydot.Node("n1",shape='circle',style='filled',fillcolor='#FFFFFF',fontsize='8',margin='0')
node.set_label('"α"')
g.add_node(node)
@mixstef
mixstef / README.md
Last active August 29, 2015 14:19
Scanning με το Plex

Scanning με το Plex

  • plex1.py - Απλό παράδειγμα χωρίς έλεγχο λαθών
  • plex2.py - Προσθέτοντας έλεγχο λαθών (exception handling)
  • plex3.py - Ο κανόνας του μακρύτερου ταιριάσματος
  • plex4.py - Αγνοώντας κείμενο με βάση το μακρύτερο ταίριασμα
  • plex5.py - Σε ταίριασμα ίδιου μήκους προηγείται ό,τι δηλώθηκε πρώτα
  • plex6.py - Αγνοώντας single-line σχόλια
  • plex7.py - Αγνοώντας multiple-line σχόλια /* ... */
@mixstef
mixstef / vectoradd-pthreads.c
Created April 19, 2015 07:12
Παράδειγμα χρήσης pthreads
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <pthread.h>
// Sample vector addding program using pthreads
// compile with:
// gcc -O2 -Wall -pthread vectoradd-pthreads.c -o vectoradd-pthreads -DTHREADS=16 -DN=100000 -DR=50000
// use R>=1000, N=100000, THREADS= 1,2,4,6,8,16,32
@mixstef
mixstef / README.md
Last active August 29, 2015 14:19
Πολλαπλασιασμός πινάκων (pthreads)

Πολλαπλασιασμός πινάκων (pthreads)

  • matmul-nothreads.c - εκδοχή χωρίς pthreads (για σύγκριση)
  • matmul-pthreads.c - εκδοχή με pthreads
@mixstef
mixstef / README.md
Last active May 29, 2018 16:09
Δομές συγχρονισμού pthreads (mutexes, condition variables, barriers)

Δομές συγχρονισμού pthreads

Παραδείγματα χρήσης mutex, condition variables, barrier.

  • mutex-example.c - αμοιβαία αποκλειόμενη ενημέρωση σφαιρικού (global) μετρητή

  • cv-example.c - παράδειγμα producer-consumer με buffer ενός στοιχείου

  • barrier-example.c - παράλληλο άθροισμα (parallel sum reduction). Προσοχή: κατάλληλο μόνο για παράδειγμα, όχι για αληθινές εφαρμογές pthreads!