1. Introduction : Problems with large programs 2.The Game of Life (a continuing example) 3. Programming style 4. Coding, Testing ,and Further Refinement 5. Program Maintenance 6. Preview (a) Software Engineering (b) Problem Analysis (c) Requirements Specification (d) Coding 7. Pointers and Pitfalls 8. References
6.1 Binary trees and binary search tree 6.2 Inorder, preorder, and postorder tree walk 6.3 Successor and predecessor of BST 6.4 Operations of BST: search, Minimum and maximum, constructing, deletion and insertion 6.5 Balanced search trees 6.6 AVL trees 6.7 Single and double rotation 6.8 Red-black trees 6.9 B-tree (2-3-4 tree)
4.1 Randomized algorithm 4.2 Quicksort and randomized quicksort 4.3 Expected running time of quicksort 4.4 Max-heaps and min-heaps 4.5 Heap operations: heapify, building, and key increasing 4.6 heap sort and priority queues 4.7 Comparisons of sort algorithms: heap sort, quick sort, insertion sort, and merge sort 4.8 Comparison sort and decision tree model 4.9 Sorting in linear time: counting-sort, radix sort, and bucket sort