Data Structures and Algorithms A Summary
Data Structures Data Structures Underlying Data Structures Main Operations Arrays, Linked lists Queues, Stacks Trees Priority Queues Maps Ordered Maps Graphs Data Structures
Data Structures Data Structures Underlying Data Structures Main Operations Arrays, Linked lists Queues, Stacks Trees Arrays, Linked structures Priority Queues Arrays, Linked lists, Heaps Maps Arrays, Hash tables Ordered Maps Sorted arrays, Skip lists, Binary search trees , AVL trees, (2,4) trees Graphs Adjacency lists, matrices (arrays), Edge lists Data Structures
Data Structures Data Structures Underlying Data Structures Main Operations Arrays, Linked lists Get, Set, Traverse, Insert, Delete Queues, Stacks Insert: enqueue, push Delete: dequeue, pop Trees Arrays, Linked structures Children, Parent Traverse: preorder, inorder, postorder, breadth-first Priority Queues Arrays, Linked lists, Heaps Insert: put Delete: removeMin Set: replaceKey, replaceValue Maps Arrays, Hash tables Find: get Insert: put; Delete: remove Ordered Maps Sorted arrays, Skip lists, Binary search trees , AVL trees, (2,4) trees Map operations plus floorEntry, ceilingEntry subMap Graphs Adjacency lists, matrices (arrays), Edge lists getAdjacentVertices, getEdge Insert/delete vertex/edge Traverse: depth-first, breadth-first Data Structures
Data Structures Data Structures Underlying Data Structures Main Operations Arrays, Linked lists Get, Set, Traverse, Insert, Delete Queues, Stacks Insert: enqueue, push Delete: dequeue, pop Trees Arrays, Linked structures Children, Parent Traverse: preorder, inorder, postorder, breadth-first Priority Queues Arrays, Linked lists, Heaps Insert: put Delete: removeMin Set: replaceKey, replaceValue Maps Arrays, Hash tables Find: get Insert: put; Delete: remove Ordered Maps Sorted arrays, Skip lists, Binary search trees , AVL trees, (2,4) trees Map operations plus floorEntry, ceilingEntry subMap (Traverse) Graphs Adjacency lists, matrices (arrays), Edge lists getAdjacentVertices, getEdge Insert/delete vertex/edge Traverse: depth-first, breadth-first Data Structures
General Algorithm Types Characteristics Examples Brute Force try all possibilities usually the baseline algorithm Basic pattern matching
General Algorithm Types Characteristics Examples Brute Force try all possibilities usually the baseline algorithm Basic pattern matching Greedy given multiple possibilities at each iteration select the ‘best’ one and do not look back may not be optimal for some problems Dijkstra (Shortest Path), Kruskal, Prim (Minimum Spanning Tree), Huffman (Compression)
General Algorithm Types Characteristics Examples Brute Force try all possibilities usually the baseline algorithm Basic pattern matching Greedy given multiple possibilities at each iteration select the ‘best’ one and do not look back may not be optimal for some problems Dijkstra (Shortest Path), Kruskal, Prim (Minimum Spanning Tree), Huffman (Compression) Divide and Conquer decompose into separate subproblems and compose solutions usually recursive and top-down Mergesort, Quicksort
General Algorithm Types Characteristics Examples Brute Force try all possibilities usually the baseline algorithm Basic pattern matching Greedy given multiple possibilities at each iteration select the ‘best’ one and do not look back may not be optimal for some problems Dijkstra (Shortest Path), Kruskal, Prim (Minimum Spanning Tree), Huffman (Compression) Divide and Conquer decompose into separate subproblems and compose solutions usually recursive and top-down Mergesort, Quicksort Dynamic programming decompose into reoccurring subproblems and compose solutions store “sub-solutions” and use bottom-up Longest Common Subsequence, Matrix Chain Multiplication
Leading to Term Project Lab exercises Understanding of Data Structures and Algorithms (DS&A) Homework assignments Implementation of DS&A further understanding and implementation issues Term project design/choose/implement DS&A deeper understanding tradeoffs and utility
Problem Solving & Term Project Quality of solution Accuracy/points Algorithms Speed of solution Time Algorithms and data structures Space usage of solution Memory Data structures
Final Exam Dec 11, Monday, 6-8pm, OLS 130 (regular classroom) As stated in the syllabus (and FIT website) Graphs , Text Processing, Search Trees, Sorting Christmas Special Extra credit More questions/points