This course delves into the design, implementation, and use of advanced data structures, based on primitive data types. Students will solidify their understanding of strings, arrays, structures, unions and bit manipulation. Emphasis will be on programming that employs and improves upon a variety of data structures. Through this course, you will learn to write efficient programs by understanding the complexities of various algorithms.
- Data types, variables, operators, and operator precedence
- Arrays in general, including two-dimensional and multi-dimensional configurations
- Dynamic memory allocation, linked, circular and doubly linked lists
- Binary trees in general, including implementation, traversal and drawbacks
- Recursions and implementation of recursive algorithms
- Huffman algorithm
- AVL trees, B trees, and B+ trees
- Sort routines, big 0 notation and the complexity of algorithms
- Graphs: their traversal and applications
- Hashing and hash tables
Skills Needed: Students should have a good understanding of programming using data types such as pointers, control flow, structures and functions.