Notes, exercises and projects from my algorithms and data structure course at USP. Always looking for more efficient and effective codes.
- Content 01: Abstract Data Type (ADT)
- Content 02: Stack
- Content 03: Queue and Deque
- Content 04: Lists
- Content 05: Trees
- Content 06: Binary Trees
- Content 07: Binary Search Tree
- Content 08: AVL Tree
- Content 09: Left Learning Red-Black Tree
- Content 10: Priority Queue and Heaps
- Exercise 01: ADT Point and Circle
- Exercise 02: Distance
- Exercise 03: Reverse Polish Notation
- Exercise 04: Shuffle
- Exercise 05: Ordered Insertion
- Exercise 06: Strictly Binary
- Exercise 07: Check Search
- Exercise 08: Delete Queue Recursively
- Exercise 09: Balanced Sequence
- Exercise 10: Perfectly Balanced
- Project 01: Traveling Salesman Problem
- Project 02: Set
In the stditem folder, you will find some of the data structures implemented this semester, such as stacks, queues, deques, lists (linked, sequential, doubly linked, and with head nodes), as well as binary search trees, AVL trees, and left-leaning red-black trees. All these structures are implemented using the item ADT, which is a structure that stores an integer and a void pointer. This pointer can be linked to any type the user prefers, expanding the use of the ADT without requiring changes to the code. It is worth noting that, because of this flexibility, it is necessary to manage the item carefully, including allocating and deallocating it properly.
- ADT 01: Item
- ADT 02: List
- ADT 03: Stack
- ADT 04: Queue
- ADT 05: Deque
- ADT 06: Binary Search Tree
- ADT 07: AVL Tree
- ADT 08: Left Learning Red-Black Tree