Sotfware Design and Development II.

2020 spring semester

Inheritance. Method hiding. Polymorphism. Abstract classes and interfaces. Iterators. Components. Operator overloading. Exceptions. Generic classes. Advanced sorting. Dynamic arrays. Lists. Queue and stack. Binary search tree. Red and black tree. B-tree. Heaps. Directed and undirected graphs. Trees, spanning trees. Kruskal and Prim algorithm. Connected components. Search for a path in the graph. Hashing.

check requirements

Codes

Codes for the videos can be found on my GitHub, linked to this repository.

LA-06 BACKTRACK SEARCH

Back track search algorithm implemented and used in a small example project, to find out one possible solution out of many variants.

LA-07 LINKED LIST

Creating a linked list data structure. Using generic types to be more flexible with the usage of the list, and using nested classes. Check extra bits #1 and extra bits #2.

LA-08 BINARY SEARCH TREE

Creating a binary search tree data structure. Using generic types (T and K, forming key-value pairs) to be more flexible with the usage of the structure. Check extra bits.

LA-09 GRAPH

Creating a graph data structure using adjacency list. Using BFS (breadth first search) and DFS (depth first search) traversals.

LA-10 HASH TABLE

Creating hash table, a key-value based data structure. Implementing different versions (using list, using linked list, using direct addressing).

LA-X QUEUE & STACK

EXTRA MATERIAL

Creating generic queue and stack data structures with arrays. Part 1: theory and introduction, Part 2: coding the stack, Part 3: coding the queue