Lecture Notes and Semester Plan (2023-2024 Spring)
These notes and source codes are just to guide you and intended to be support materials. Your primary responsible is to attend lectures and labs. Throughout the semester, I will not use PowerPoint materials; the classes will be conducted using a program developed on the whiteboard, accompanied by discussions throughout the lessons.
Data Structures and algorithms will be discussed and developed during lecture and lab hours.
Lab Works & Source Codes (https://webonline.cankaya.edu.tr/)
Week 0:
Reading:
Streams (Input/Output in C++) (PPT)
Error Handling (Exceptions in C++)
Week | Subject |
Week 1: | Introduction to Data Structues |
Week 2: | Sequence Containers (array,vector and list). Read this before lecture. |
Week 3 |
Linked Lists, Node Class dynamic memory management.
|
Week 4 | Stacks & Its applications |
Week 5 |
Stack Implementation in C++ (array based, vector based, linked list based) & Its applications
|
Week 6 | Queue |
7 | Queue Applications and Linked Implementation of Queue |
8 | Recursion (Introduction and C-Type String Related Recursive Examples) |
9-10 | Non Linear Data Structures (Binary Tree, Tree Traversal) |
11-12 | Binary Search Tree (pptx) |
13 | Heap (Priority Queue) and Huffman Compression Algorithm |
Old Content (Before 2023-2024)
- Arrays(Arrays), String and Vectors in C++ , Strings and Vectors)
-
File Input/Output in C++ (PPT)
-
Pointers and Dynamic Arrays (PPT)
- Lists and Sequences
- Static Array Based
- Dynamic Array Based
- Linked Structures
- Stack ADT
- Notes on Stack impl.
- Stack Applications
- Queue
- Notes on Queue impl.
- Queue Applications & Implementations
- Recursion
(c++ codes developed during lecture hours) - Binary Trees
Tree Node Defintion
Traversal Algorithms
Recursive Algoritms on Binary Trees (.cpp) - Binary Search Trees
BST Insert Algo(.cpp)
Level Order Taversal (Non Recursive (Iterative) algorithms on Binary Trees) (.cpp) - Additional and Important Notes on Binary Trees and Binary Search Trees
Binary Trees
Binary Search Trees - Introduction to Time Complexities: Big O notation. (ppt) ( will not be asked in the final exam, just read and try to understand)
- Priority Queue - Min/Max Heap - Heap Sort
- Huffman Coding: An Application of Binary Trees and Priority
- Searching and Sorting
- Quick Sort
- Merge Sort
- Insertion, Selection, Bubble Sort Algorithms
Please take your time and read these articles:
- Programming Style (from wikipedia)
- Abstraction in Computer Science
- https://en.wikipedia.org/wiki/C%2B%2B#Philosophy