Adel'son-Velskii, G. M., and Y. M. Landis [1962]. "An algorithm for the organization of
information," *Dokl. Akad. Nauk SSSR* **146**, pp. 263-266
English translation in *Soviet Math. Dokl.* **3**, pp. 1259-1262.

Aho, A. V., M. R. Garey, and J. D. Ullman [1972]. "The transitive
reduction of a directed graph," *SIAM J. Computing* **1:**2, pp. 131-137.

Aho, A. V., J. E. Hopcroft, and J. D. Ullman [1974]. *The Design and
Analysis of Computer Algorithms*," Addison-Wesley, Reading, Mass.

Aho, A. V., and N. J. A. Sloane [1973]. "Some doubly exponential
sequences," *Fibonnaci Quarterly* **11:**4, pp. 429-437.

Aho, A. V., and J. D. Ullman [1977]. *Principles of Compiler Design*,
Addison-Wesley, Reading, Mass.

Bayer, R., and E. M. McCreight [1972]. "Organization and maintenance of
large ordered indices," *Acta Informatica* **1:**3, pp. 173-189.

Bellman, R. E. [1957]. *Dynamic Programming*, Princeton University Press,
Princeton, N. J.

Bentley, J. L. [1982]. *Writing Efficient Programs*, Prentice-Hall, Englewood
Cliffs, N. J.

Bentley, J. L., D. Haken, and J. B. Saxe [1978]. "A general method for solving divide-and-conquer recurrences," CMU-CS-78-154, Dept. of CS, Carnegie-Mellon Univ., Pittsburg, Pa.

Berge, C. [1957]. "Two theorems in graph theory," *Proc. National Academy
of Sciences* **43**, pp. 842-844.

Berge, C. [1958]. *The Theory of Graphs and its Applications*, Wiley, N. Y.

Birtwistle, G. M., O.-J. Dahl, B. Myhrhaug, and K. Nygaard [1973].
*SIMULA Begin*, Auerbach Press, Philadelphia, Pa.

Blum, M., R. W. Floyd, V. R. Pratt, R. L. Rivest, and R. E. Tarjan [1972].
"Time bounds for selection," *J. Computer and System Sciences* **7:**4, pp. 448-
461.

Boruvka, O. [1926]. "On a minimal problem," *Práce Moraské
Pridovedecké
Spolecnosti* **3:**3, pp. 37-58.

Brooks, F. P. [1974]. *The Mythical Man Month*, Addison-Wesley, Reading,
Mass.

Carter, J. L., and M. N. Wegman [1977]. "Universal classes of hash
functions," *Proc. Ninth Annual ACM Syrup. on Theory of Computing*, pp.
106-112.

Cheriton, D., and R. E. Tarjan [1976]. "Finding minimum spanning trees,"
*SIAM J. Computing* **5:**4, pp. 724-742.

Cocke, J., and F. E. Allen [1976]. "A program data flow analysis
procedure," *Comm. ACM* **19:**3, pp. 137-147.

Coffman, E. G. (ed.) [1976]. *Computer and Job Shop Scheduling Theory*, John
Wiley and Sons, New York.

Comer, D. [1979]. "The ubiquitous B-tree," *Computing Surveys* **11**, pp.
121-137.

Cooley, J. M., and J. W. Tukey [1965]. "An algorithm for the machine
calculation of complex Fourier series," *Math. Comp.* **19**, pp. 297-301.

DBTG [1971]. *CODASYL Data Base Task Group April 1971 Report*, ACM,
New York.

Demers, A., and J. Donahue [1979]. "Revised report on RUSSELL," TR 79-389, Dept. of Computer Science, Cornell Univ., Ithaca, N. Y.

Deo, N. [1975]. *Graph Theory with Applications to Engineering and Computer
Science*, Prentice-Hall, Englewood Cliffs, N. J.

Deutsch, L. P., and D. G. Bobrow [1966]. "An efficient incremental
automatic garbage collector," *Comm. ACM* **9:**9, pp. 522-526.

Dijkstra, E. W. [1959]. "A note on two problems in connexion with graphs,"
*Numerische Mathematik* **1**, pp. 269-271.

Edmonds, J. [1965]. "Paths, trees, and flowers," *Canadian J. Math* **17**, pp.
449-467.

Even, S. [1980]. *Graph Algorithms*, Computer Science Press, Rockville, Md.

Even, S., and O. Kariv [1975]. "An 0(*n*^{2.5}) algorithm for maximum
matching
in general graphs," *Proc. IEEE Sixteenth Annual Symp. on Foundations of
Computer Science*, pp. 100-112.

Farber, D., R. E. Griswold, and I. Polonsky [1964]. "SNOBOL, a string
manipulation language," *J. ACM* **11:**1, pp. 21-30.

Fischer, M. J. [1972]. "Efficiency of equivalence algorithms," in *Complexity
of Computer Computations* (R. E. Miller and J. W. Thatcher, eds.) pp.
153-168.

Fletcher, W., and R. Silver [1966]. "Algorithm 284: interchange of two
blocks of data," *Comm. ACM* **9:**5, p. 326.

Floyd, R. W. [1962]. "Algorithm 97: shortest path," *Comm. ACM* **5:**6, p.
345.

Floyd, R. W. [1964]. "Algorithm 245: treesort 3," *Comm. ACM* **7:**12, p.
701.

Floyd, R. W., and A. Smith [1973]. "A linear time two-tape merge," *Inf.
Processing letters* **2:**5, pp. 123-126.

Ford, L. R., and S. M. Johnson [1959]. "A tournament problem," *Amer.
Math. Monthly* **66**, pp. 387-389.

Frazer, W. D., and A. C. McKellar [1970]. "Samplesort: a sampling
approach to minimal tree storage sorting," *J. ACM* **17:**3, pp. 496-507.

Fredkin, E. [1960]. "Trie memory," *Comm. ACM* **3:**9, pp. 490-499.

Friend, E. H. [1956]. "Sorting on electronic computer systems," *J. ACM*
**3:**2,
pp. 134-168.

Fuchs, H., Z. M. Kedem, and S. P. Uselton [1977]. "Optimal surface
reconstruction using planar contours," *Comm. ACM* **20:**10, pp. 693-702.

Garey, M. R., and D. S. Johnson [1979]. *Computers and Intractability: a
Guide to the Theory of NP-Completeness*, Freeman, San Francisco.

Geschke, C. M., J. H. Morris, Jr., and E. H. Satterthwaite [1977]. "Early
expreience with MESA," *Comm. ACM* **20:**8, pp. 540-552.

Gotlieb, C. C., and L. R. Gotlieb [1978]. *Data Types and Data Structures*,
Prentice-Hall, Englewood Cliffs, N. J.

Greene, D. H., and D. E. Knuth [1983]. *Mathematics for the Analysis of
Algorithms*, Birkhauser, Boston, Mass.

Gudes, E., and S. Tsur [1980]. "Experiments with B-tree reorganization,"
*ACM SIGMOD Symposium on Management of Data*, pp. 200-206.

Hall, M. [1948]. "Distinct representatives of subsets," *Bull. AMS* **54**, pp.
922-926.

Harary, F. [1969]. *Graph Theory*, Addison-Wesley, Reading, Mass.

Hirschberg, D. S. [1973]. "A class of dynamic memory allocation
algorithms," *Comm. ACM* **16:**10, pp. 615-618.

Hoare, C. A. R. [1962]. "Quicksort," *Computer J.* **5:**1, pp. 10-15.

Hoare, C. A. R., O.-J. Dahl, and E. W. Dijkstra [1972]. *Structured
Programming*, Academic Press, N. Y.

Hopcroft, J. E., and R. M. Karp [1973]. "An *n*^{5/2} algorithm for maximum
matchings in bipartite graphs," *SIAM J. Computing* **2:**4, pp. 225-231.

Hopcroft, J. E., and R. E. Tarjan [1973]. "Efficient algorithms for graph
manipulation," *Comm. ACM* **16:**6, pp. 372-378.

Hopcroft, J. E., and J. D. Ullman [1973]. "Set merging algorithms," *SIAM J.
Computing* **2:**4, pp. 294-303.

Huffman, D. A. [1952]. "A method for the construction of
minimum-redundancy codes," *Proc. IRE* **40**, pp. 1098-1101.

Hunt, J. W., and T. G. Szymanski [1977]. "A fast algorithm for computing
longest common subsequences," *Comm. ACM* **20:**5, pp. 350-353.

Iverson, K. [1962]. *A Programming Language*, John Wiley and Sons, New
York.

Johnson, D. B. [1975]. "Priority queues with update and finding minimum
spanning trees," *Inf. Processing Letters* **4:**3, pp. 53-57.

Johnson, D. B. [1977]. "Efficient algorithms for shortest paths is sparse
networks," *J. ACM* **24:**1, pp. 1-13.

Karatsuba, A., and Y. Ofman [1962]. "Multiplication of multidigit numbers
on automata," *Dokl. Akad. Nauk SSSR* **145**, pp. 293-294.

Kernighan, B. W., and P. J. Plauger [1974]. *The Elements of Programming
Style*, McGraw-Hill, N. Y.

Kernighan, B. W., and P. J. Plauger [1981]. *Software Tools in Pascal*,
Addison-Wesley, Reading, Mass.

Knowlton, K. C. [1965]. "A fast storage allocator," *Comm. ACM* **8:**10,
pp.
623-625.

Knuth, D. E. [1968]. *The Art of Computer Programming Vol. I: Fundamental
Algorithms*, Addison-Wesley, Reading, Mass.

Knuth, D. E. [1971]. "Optimum binary search trees," *Acta Informatica*
**1:**1,
pp. 14-25.

Knuth, D. E. [1973]. *The Art of Computer Programming Vol. III: Sorting and
Searching*, Addison-Wesley, Reading, Mass.

Knuth, D. E. [1981]. *TEX and Metafont, New Directions in Typesetting*, Digital
Press, Bedford, Mass.

Kruskal, J. B. Jr. [1956]. "On the shortest spanning subtree of a graph and
the traveling salesman problem," *Proc. AMS* **7:**1, pp. 48-50.

Lin, S., and B. W. Kernighan [1973]. "A heuristic algorithm for the traveling
salesman problem," *Operations Research* **21**, pp. 498-516.

Liskov, B., A. Snyder, R. Atkinson, and C. Scaffert [1977]. "Abstraction
mechanisms in CLU," *Comm. ACM* **20:**8, pp. 564-576.

Liu, C. L. [1968]. *Introduction to Combinatorial Mathematics*, McGraw-Hill,
N. Y.

Lueker, G. S. [1980]. "Some techniques for solving recurrences," *Computing
Surveys*, **12:**4, pp. 419-436.

Lum, V., and H. Ling [1970]. "Multi-attribute retrieval with combined
indices," *Comm. ACM* **13:**11, pp. 660-665.

Maurer, W. D., and T. G. Lewis [1975]. "Hash table methods," *Computing
Surveys* **7:**1, pp. 5-20.

McCarthy, J. et al. [1965]. *LISP 1.5 Programmers Manual*, MIT Press,
Cambridge, Mass.

Micali, S., and V. V. Vazirani [1980]. "An
algorithm for
finding maximum matching in general graphs," *Proc. IEEE Twenty-first
Annual Symp. on Foundations of Computer Science*, pp. 17-27.

Moenck, R., and A. B. Borodin [1972]. "Fast modular transforms via
division," *Proc. IEEE Thirteenth Annual Symp. on Switching and Automata
Theory*, pp. 90-96.

Morris, F. L. [1978]. "A time- and space-efficient garbage compaction
algorithm," *Comm. ACM* **21:**8, pp. 662-665.

Morris, R. [1968]. "Scatter storage techniques," *Comm. ACM* **11:**1, pp.
35-44.

Moyles, D. M., and G. L. Thompson [1969]. "Finding a minimum equivalent
graph of a digraph," *J. ACM* **16:**3, pp. 455-460.

Nicholls, J. E. [1975]. *The Structure and Design of Programming Languages*,
Addison-Wesley, Reading, Mass.

Nievergelt, J. [1974]. "Binary search trees and file organization," *Computer
Surveys* **6:**3, pp. 195-207.

Papadimitriou, C. H., and K. Steiglitz [1982]. *Combinatorial Optimization:
Algorithms and Complexity*, Prentice-Hall, Englewood Cliffs, N. J.

Parker, D. S. Jr. [1980]. "Conditions for optimality of the Huffman
algorithm," *SIAM J. Computing* **9:**3, pp. 470-489.

Perl, Y., A. Itai, and H. Avni [1978]. "Interpolation search -- a log log *n*
search," *Comm. ACM* **21:**7, pp. 550-553.

Peterson, W. W. [1957]. "Addressing for random access storage," *IBM J.
Res. and Devel*. **1:**2, pp. 130-146.

Pratt, T. W. [1975]. *Programming Languages: Design and Implementation*,
Prentice-Hall, Englewood Cliffs, N. J.

Pratt, V. R. [1979]. *Shellsort and Sorting Networks*, Garland, New York.

Prim, R. C. [1957]. "Shortest connection networks and some
generalizations," *Bell System Technical J.* **36**, pp. 1389-1401.

Reingold, E. M. [1972]. "On the optimality of some set algorithms," *J. ACM*
**19:**4, pp. 649-659.

Robson, J. M. [1971]. "An estimate of the store size necessary for dynamic
storage allocation," *J. ACM* **18:**3, pp. 416-423.

Robson, J. M. [1974]. "Bounds for some functions concerning dynamic
storage allocation," *J. ACM* **21:**3, pp. 491-499.

Robson, J. M. [1977]. "A bounded storage algorithm for copying cyclic
structures," *Comm. ACM* **20:**6, pp. 431-433.

Sahni, S. [1974]. "Computationally related problems," *SIAM J. Computing*
**3:**3, pp. 262-279.

Sammet, J. E. [1968]. *Programming Languages: History and Fundamentals*,
Prentice-Hall, Englewood Cliffs, N. J.

Schkolnick, M. [1975]. "The optimal selection of secondary indices for files,"
*Information Systems* **1**, pp. 141-146.

Schoenhage, A., and V. Strassen [1971]. "Schnelle multiplikation grosser
zahlen," *Computing* **7**, pp. 281-292.

Schorr, H., and W. M. Waite [1967]. "An efficient machine-independent
procedure for garbage collection in various list structures," *Comm. ACM* **10:**8,
pp. 501-506.

Schwartz, J. T. [1973]. *On Programming: An Interrum Report on the SETL
Project*, Courant Inst., New York.

Sharir, M. [1981]. "A strong-connectivity algorithm and its application in
data flow analysis," *Computers and Mathematics with Applications* **7:**1, pp.
67-72.

Shaw, M., W. A. Wulf, and R. L. London [1977]. "Abstraction and
verification in ALPHARD: defining and specifying iteration and generators,"
*Comm. ACM* **20:**8, pp. 553-563.

Shell, D. L. [1959]. "A high-speed sorting procedure," *Comm. ACM* **2:**7,
pp.
30-32.

Shell, D. L. [1971]. "Optimizing the polyphase sort," *Comm. ACM*
**14:**11, pp.
713-719.

Singleton, R. C. [1969]. "Algorithm 347: an algorithm for sorting with
minimal storage," *Comm. ACM* **12:**3, pp. 185-187.

Strassen, V. [1969]. "Gaussian elimination is not optimal," *Numerische
Mathematik* **13**, pp. 354-356.

Stroustrup, B. [1982]. "Classes: an abstract data type facility for the C
language," *SIGPLAN Notices* **17:**1, pp. 354-356.

Suzuki, N. [1982]. "Analysis of pointer 'rotation'," *Comm. ACM* **25:**5,
pp.
330-335.

Tarjan, R. E. [1972]. "Depth first search and linear graph algorithms," *SIAM
J. Computing* **1:**2, pp. 146-160.

Tarjan, R. E. [1975]. "On the efficiency of a good but not linear set merging
algorithm," *J. ACM* **22:**2, pp. 215-225.

Tarjan, R. E. [1981]. "Minimum spanning trees," unpublished memorandum, Bell Laboratories, Murray Hill, N. J.

Tarjan, R. E. [1983]. *Data Structures and Graph Algorithms*, unpublished
manuscript, Bell Laboratories, Murray Hill, N. J.

Ullman, J. D. [1974]. "Fast algorithms for the elimination of common
subexpressions," *Acta Informatica* **2:**3, pp. 191-213.

Ullman, J. D. [1982]. *Principles of Database Systems*, Computer Science
Press, Rockville, Md.

van Emde Boas, P., R. Kaas, and E. Zijlstra [1977]. "Design and
implementation of an efficient priority queue structure," *Math Syst. Theory*, **10**, pp.
99-127.

Warshall, S. [1962]. "A theorem on Boolean matrices," *J. ACM* **9:**1, pp.
11-12.

Weinberg, G. M. [1971]. *The Psychology of Computer Programming*, Van
Nostrand, N. Y.

Weiner, P. [1973]. "Linear pattern matching algorithms," *Proc. IEEE
Fourteenth Annual Symp. on Switching and Automata Theory*, pp. 1-11.

Wexelblat, R. L. (ed.) [1981]. *History of Programming Languages*, Academic
Press, N. Y.

Wiederhold, G. [1982]. *Database Design*, McGraw-Hill, New York.

Williams, J. W. J. [1964]. "Algorithm 232: Heapsort," *Comm. ACM* **7:**6,
pp.
347-348.

Wirth, N. [1973]. *Systematic Programming: An Introduction*, Prentice-Hall,
Englewood Cliffs, N. J.

Wirth, N. [1976]. *Algorithms + Data Structures = Programs*, Prentice-Hall,
Englewood Cliffs, N. J.

Wulf, W. A., M. Shaw, P. Hilfinger, and L. Flon [1981]. *Fundamental
Structures of Computer Science*, Addison-Wesley, Reading, Mass.

Yao, A. C. [1975]. "An O(|E| log log |V|) algorithm for finding minimum
spanning trees," *Inf. Processing Letters* **4:**1, pp. 21-23.

Yao, A. C., and F. F. Yao [1976]. "The complexity of searching a random
ordered table," Proc. *IEEE Seventeenth Annual Symp. on Foundations of
Computer Science*, pp. 173-177.

Yourdon, E., and L. L. Constantine [1975]. *Structured Design*, Yourdon,
New York.