Aho, Hopcroft, and Ullman. Data Structures and Algorithms. Addison-Wesley, 1983 (reprinted 1987))
Dijkstra. A Discipline of Programming. Prentice-Hall, 1976.
Korsh and Garrett. Data Structures, Algorithms, and Program Style Using C. PWS-Kent, 1988.
Standish. Data Structure Techniques. Addison-Wesley, 1980.
Weiss. Data Structures and Algorithm Analysis in C++, 3rd Edition. Adison-Wesley, 2007.
Dr. Dobbs Essential Books on Algorithms and Data Structures. Miller Freeman, Inc. (This CD contains the complete text of Cormen et al (1st edition), Aho et al, and Korsh & Garrett.)
Knuth. The Art of Computer Programming, 2d -- Vol 1 / Fundamental Algorithms. Addison-Wesley, 1973.
Knuth. The Art of Computer Programming, 2d -- Vol 2 / Seminumerical Algorithms. Addison-Wesley, 1981.
Knuth. The Art of Computer Programming, Vol 3 / Sorting and Searching. Addison-Wesley, 1973.
· Pre-Fascicle 2a: Generating all $n$-tuples (version of 10 December 2004)
· Pre-Fascicle 2b: Generating all permutations (version of 10 December 2004) ·
· Pre-Fascicle 3a: Generating all combinations (version of 10 December 2004)
· Pre-Fascicle 3b: Generating all partitions (version of 10 December 2004)
· Pre-Fascicle 4a: Generating All Trees (version of 28 October 2005)
· Pre-Fascicle 4b: History of Combinatorial Generation (version of 28 October 2005)
Horowitz and Sahni. Fundamentals of Computer Algorithms. Computer Science Press, 1984.
Gries. The Science of Programming. Springer-Verlag, 1981.
Bentley. Programming Pearls. Addison-Wesley, 1986.
Bentley. More
Programming Pearls -- Confessions of a Coder. Addison-Wesley,
1988.
Goodrich and Tamassia , Date Structures and Algorithms in JAVA, 4th Edition. Wiley, 2005
Sedgewick, Bundle of Algorithms in
Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting,
Searching, and Graph Algorithms, 3rd Edition, Addison-Wesley, 2004
http://policies.temple.edu/getdoc.asp?policy_no=03.70.02.
OUTLINE This is intended to give a general idea of the course but is subject to change.
Week:
1 Detailed development of a prototype solution to the Topological Sorting problem
to illustrate programming methodology and the impact of data structure selection on program characteristics.
2 Three solutions to the maximum subsequence problem.
3 Garwick's multiple stack management algorithm and a modified version.
4,5 Asymptotic analysis of programs. Proof of correctness of programs.
6 Binary tree traversals using stacks, linked inversion and constant storage (Robson and modified Robson).
7 Counting binary and other trees. Stack permutations.
8 Mid Term Examination
9 Heaps, sorting and priority queues.
10 Binary search trees, balanced binary trees, AVL trees and splay trees.
11 Disjoint Sets, min spanning trees
12 Huffman coding, Optimal binary search trees.
13 Graph Traversals, biconnected graphs, strongly connected components.
14 Review and selected topics.