Books

The course uses more than one books (and mainly the english-written books mentioned below). Any of the above books covers most of the material that will be taught. Additionally, students should study carefully the course slides as well as any other material handed out throughout the semester.

More specifically, the sections of the course are covered by the sections of the following books::

  • Section 1:
    • Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991 (Chapter 1: Introduction)
    • Cormen, Leiserson and Rivest, Introduction to Algorithms, MIT Press, 1990.
    • Μιchael T. Goodrich and Roberto Tamassia, Data Structures and Algorithms in Java, John Wiley & Sons, Inc., (4th edition). Part of the material on experimental algorithm analysis comes from this book.
  • Section 2:
    • Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991(Chapter 3: Lists)
    • Cormen, Leiserson and Rivest, Introduction to Algorithms, MIT Press, 1990. The material associated with the partitioning analysis is contained in this book.
  • Section 3:
    • Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991 (Chapter 4: Trees).
  • Section 4:
    • Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991 (Chapter 6: List and Tree Implementations of Sets)
    • Part of the binary search tree material is described in Cormen, Leiserson and Rivest, Introduction to Algorithms, MIT Press, 1990.
  • Section 5:
    • AVL & 2-3 Trees: Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991 (Sections 7.1 & 7.2: Tree Structures for Dynamic Dictionaries: AVL Trees & 2-3 Trees and B-Trees)
    • Red-black trees: Cormen, Leiserson and Rivest, Introduction to Algorithms, MIT Press, 1990.
  • Section 6:
    • Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991 (Sections 8.3 & 8.4: Hashing Techniques & Extendible Hashing)
    • The material about the extensible fragmentation is presented in detail in Chapter 15 of the book: Παναγιώτης Μποζάνης, Δομές δεδομένων, 960-418-010-Χ, Τζιόλας, 2003.
    • Part of the material about the shredding functions is presented in Cormen, Leiserson and Rivest, Introduction to Algorithms, MIT Press, 1990.
  • Section 7:
    • Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991 (Section 9.1: Priority Queues)
  • Section 8:
    • Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991 (Sections 11.1 - Kinds of Sorting Algorithms, 11.2 - Insertion and Shell Sort, 11.3 - Selection and Heap Sort)
    • The material with the Quick Sort and Merge Sort is presented at Cormen, Leiserson and Rivest, Introduction to Algorithms, MIT Press, 1990.
  • Section 9:
    • Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991 (Section 9.2: Disjoint Sets with Union)
  • Section 10:
    • Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991 (Sections 12.1, Graphs and Their Representations & 12.2: Graph Searching)
    • Cormen, Leiserson and Rivest, Introduction to Algorithms, MIT Press, 1990.

Related Bibliography

Below is a list of relevant literature:

  • K. Mehlhorn and S. Näher, “LEDA”, Cambridge University Press, 1999.
  • C. J. Van Wyk, “Data Structures and C Programs”, Addison-Wesley Publishing Company, 1988.
  • Mark Allen Weiss, Data Structures & Algorithm Analysis in Java, Addison-Wesley, 1999, 0-201-35754-2
  • William Collins, Data Structures and the Java Collections Framework, 2nd ed., McGraw-Hill, 2005, ISBN: 0-07-282379-8.
  • Leendert Ammeraal, Programs and Data Structures in C, 1988.
  • Niklaus Wirth, Algorithms and data structures, 1976.
  • Gregory Rawlins, Compared to What, Computer Science Press, 1992, ISBN: 0-7167-8243-X).
  • Anany Levitin, The Design & Analysis of Algorithms, 2nd ed, Pearson, 2007).
  • Robert Sedgewick, Algoritmhs in Java, 3rd ed, Addison-Wesley, 2003, ISBN: 0-201-36120-5, Volume A: Fundamentals, Data Structures, Sorting, Searching
  • Data structures and algorithms in java, Michael Goodrich, Roberto Tamassia, 1997
  • Δομές δεδομένων, Μποζάνης Παναγιώτης Δ., Κωδικός ΕΥΔΟΞΟΣ: 18548768
  • Sedgewick, Robert. Algorithms in C, 1946
  • Sedgewick, Robert. Algorithms in C++, 1990.
  • Sedgewick, Robert. Algorithms in Java, 2002.
  • Introduction to Algorithms, CORMEN T.H., LEISERSON C.E., RIVEST R.L., STEIN C., 1989
  • ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ, ΓΕΩΡΓΑΚΟΠΟΥΛΟΣ Γ.Φ., Κωδικός ΕΥΔΟΞΟΣ: 260
  • ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (ΜΙΑ ΠΡΟΣΕΓΓΙΣΗ ΜΕ PASCAL), ΜΑΝΩΛΟΠΟΥΛΟΣ ΙΩΑΝΝΗΣ, Κωδικός ΕΥΔΟΞΟΣ: 6670