AVL tree    96-105, 
    deletion    105-105, 
    double rotation    100-104, 
    insertion    97-105, 
    properties    96-97, 
    single rotation    97-100, 
Abramson, B.    378, 
Abstract data type    38-38, 
Ackerman's function    244-244, 
Activation record    68-69, 
Acyclic graph    ?-253, 
Adelson-Velskii, G. M.    133, 
Adjacency list    254-255, 
Adjacency matrix    254-255, 
Aggarwal, A. A.    378, 
Aho, A. V.    36, 133, 250, 307, 
Ahuja, R. K.    308, 
Albertson, M. O.    12, 
Allen, B.    133, 
Alpha-beta pruning@\x'0'\f2\s11\(*a\(mi\(*b\s11\f(01 pruning    366-?, 369-?, 
Amortized analysis    105-108, 179-179, 244-248, 381-404, 
    Fibonacci heap    397-398, 
    binomial queue    383-387, 
    disjoint set algorithm    244-248, 
    lazy binomial queue    392-396, 
    potential function    382-387, 
    skew heap    387-390, 
    splay tree    398-402, 
Analysis of algorithms    13-36, 93-96, 199-200, 201-204, 208-211, 217-220, 244-248, 381-404, 
    amortized analysis    244-248, 381-404, 
    average case analysis    93-96, 217-220, 
    basic rules    17-20, 
    empirical confirmation    30-32, 
    logarithmic running times    27-30, 
    lower bound proofs    32, 199-200, 221-223, 
    recursive procedures    20-21, 23-26, 208-211, 217-220, 328-330, 
    bin packing    320-327, 
    traveling salesman problem    374-374, 
Articulation point    287-?, 
Atkinson, M. D.    195, 
B-tree    120-125, 150-150, 
Backtracking algorithm    358-369, 
    games    364-369, 
        \x'0'\f2\s11\(*a\(mi\(*b\s11\f(01 pruning    366-?, 369-?, 
        minimax algorithm    364-366, 
    principles of    358-358, 
    turnpike reconstruction    358-364, 
Baeza-Yates, R. A.    133, 133, 
Banachowski, L.    250, 
Bavel, Z.    12, 
Bayer, R.    133, 
Bell, T.    156, 378, 
Bellman, R. E.    308, 378, 378, 
Bentley, J. L.    36, 36, 36, 133, 133, 378, 
Biconnectivity    ?-287, 
Big-Oh notation    14-16, 
Big-Omega notation    14-16, 
Bin packing    193-193, 302, 315, 320-327, 
    best fit    324-324, 
    best fit decreasing    325-325, 
    first fit    322-324, 
    first fit decreasing    325-327, 
    lower bound for on-line algorithms    321-322, 
    next fit    322-322, 
Binary heap    160-169, 
    delete_min operation    164-165, 
    heap order    161-161, 
    insertion    162-164, 
    linear-time construction    167-169, 
    miscellaneous operations    165-167, 
    structure    160-161, 
Binary search    27-27, 36-36, 
Binary search tree    78-118, 152-153, 346-348, 
    average running time    93-96, 
    basic operations    88-91, 
    comparison to hash table    152-153, 
    deletion    91-93, 
    k-d tree    131-131, 
    optimal    346-348, 
Binary tree    315-320, 
    Huffman code    315-320, 
Binomial queue    181-189, 383-387, 392-396, 
    amortized analysis of    383-387, 
    delete_min operation    185-187, 
    implementation of    187-189, 
    insertion    182-185, 
    lazy merging    392-396, 
    merging    181-184, 
    miscellaneous operations    188-189, 
    structure    181-181, 
Binomial tree    181-181, 
Bipartite graph    ?-303, 
Bitner, J. R.    133, 
Bloom, G. S.    378, 
Blum, M.    378, 
Blum, N.    250, 
Borodin, A.    378, 
Boruvka, O.    308, 
Boyer, R. S.    156, 
Breadth first search    260-264, 279-280, 
Brown, D. J.    380, 
Brown, M. R.    195, 403, 404, 
Brualdi, R. A.    12, 
Bucket sort    49-51, 223-224, 
Burge, W. H.    12, 
Carlsson, S.    195, 195, 195, 232, 
Carter, J. L.    156, 
Catalan numbers    344, 
Chang, L.    378, 
Charmichael numbers    357-357, 
Chen, J.    195, 
Cheriton, D.    195, 308, 
Chess    364-?, 
Christofides, N.    378, 
Cleary, J. G.    378, 
Clique    ?-302, 
Closest points    ?-330, 
Clustering    142-147, 
    primary    142-144, 
    secondary    146-147, 
Coin changing problem    311-311, 376-376, 
Collision resolution    ?-139, 
Coloring    ?-302, 
Comer, D.    133, 
Compression    ?-315, 
Computational geometry    328, 330-334, 358-364, 374-374, 375-375, 
    Voronoi diagram    374-374, 
    closest points    330-334, 374-374, 
    convex hull    375-375, 
    k-d tree    131-131, 
    turnpike reconstruction    358-364, 
Connectivity    235-235, 248-249, 287-287, 
    linear time test    287-287, 
    on-line algorithm    248-249, 
Convex hull    375-375, 
Cook's theorem    301-301, 
Cook, S.    308, 
Coppersmith, D.    378, 
Crane, C. A.    195, 
Cryptography    32-32, 357-357, 
Culberson, J.    133, 133, 
Culik, K.    133, 
Decision tree    222-223, 
Dense graph    254, 
Deo, N.    308, 
Depth first search    285-298, 
    directed graph    295-298, 
    undirected graph    287-295, 
Deque    76-?, 
Dietzfelbinger, M.    156, 
Dijkstra's algorithm    264-269, 390-390, 
Dijkstra, E. W.    12, 308, 
Dijsktra's algorithm    279-280, 
Diminishing increment sort    ?-200, 
Dinic, E. A.    308, 
Disjoint sets    32, 234-251, 284-285, 
    Kruskal's algorithm    284-285, 
    analysis    244-248, 
    deunion operation    249-249, 
    quick find algorithms    236-237, 
        implementation    242-242, 
        path halving    250-250, 
    quick union algorithms    237-251, 
        implementation    242-242, 
        path compression    242-243, 
        union heuristics    240-242, 
Divide and conquer    23-26, 36-36, 205-220, 327-340, 
    analysis of general case    328-330, 
    closest points    330-334, 
    matrix multiplication    338-340, 
    maximum subsequence sum    23-26, 36-36, 
    mergesort    205-211, 
    multiplication of integers    337-338, 
    principles of    327-328, 
    quicksort    211-220, 
    selection    334-337, 
Doberkat, E. E.    232, 
Dominance    ?-250, 
Doyle, J.    251, 
Dreyfus, S. E.    378, 
Driscoll, J. R.    195, 
Du, H. C.    156, 
Dynamic programming    340-350, 
    all pairs shortest path    348-350, 
    chained matrix multiplication    343-346, 
    optimal binary search tree    346-348, 
    principles of    340-346, 
Edelsbrunner, H.    379, 
Edmonds, J.    308, 308, 
Eight queens problem    376-376, 
Eisenbath, B.    133, 
Enbody, R. J.    156, 
Eppinger, J. L.    133, 
Eppstein, D.    379, 
Equivalence class    235-237, 
Equivalence problem    235-237, 
Equivalence relations    235-237, 
Eriksson, P.    195, 
Euclid's algorithm    28-29, 298-298, 
Euler circuit    291-295, 
Euler's constant    5, 219, 
Even, S.    308, 
Exponentiation    29-30, 358-358, 
    formulas for    3-3, 
Expression tree    85-87, 
Extendible hashing    150-152, 
    performance of    151-152, 
External sorting    224-228, 
    multiway merge    225-226, 
    polyphase merge    226-227, 
    replacement selection    227-228, 
    run construction    224-225, 227-228, 
    simple merging    224-225, 
Fagin, R.    156, 
Fermat's lesser theorem    357-357, 
Fibonacci heap    390-398, 
    amortized analysis of    397-398, 
    basic operations    396-397, 
    cascading cut    396-397, 
    marking nodes    396-397, 
    Dijkstra's algorithm    269-269, 
Fibonacci numbers    397-397, 
    \x'0'\f2\s11k\v'-44u'\s-3€th\s+3€\v'44u'\s11\f(01 order    227-?, 227-?, 
    bad use of recursion    20-21, 340-341, 
    polyphase merge    227-227, 
    properties of    6-6, 11-11, 397-397, 
File compression    315-320, 
File system    79-82, 
Fischer, M. J.    251, 251, 380, 
Flajolet, P.    133, 156, 
Floyd, R. W.    195, 232, 378, 379, 379, 
Ford, L. R.    233, 308, 
Fredman, M. L.    156, 195, 195, 251, 308, 379, 404, 
Friedman, J. H.    133, 
Fulkerson, D. R.    308, 
Fuller, S. H.    134, 
GCD    ?-23, 
Gabow, H. N.    195, 251, 308, 308, 
Gajewska, H.    404, 
Galil, Z.    308, 308, 308, 379, 
Galler, B. A.    251, 
Game tree    366-369, 
Garey, M. R.    308, 
Giancarlo, R.    379, 
Godbole, S.    379, 
Goldberg, A. V.    308, 
Golin, M.    233, 
Gonnet, G. H.    133, 133, 195, 233, 
Graham, R. L.    12, 
Graph    250-250, 252-309, 
    Euler circuit    291-295, 
    acyclic    253-254, 255-258, 259-260, 296-296, 
        test for    256-256, 296-296, 
    biconnectivity    287-290, 
    bipartite    303-303, 
    breadth first search    260-264, 
    clique    302, 
    colorability    302, 
    cycle    253-254, 
        negative cost    259-260, 
    definitions    253-254, 
    depth first search    285-298, 
    directed    253-254, 255-280, 295-298, 
    dominance    250-250, 307, 
    hamiltonian cycle    299-301, 
    isomorphism    307, 
    longest path    298-298, 301, 
    matching    303-303, 
    minimum spanning tree    374, 
    multigraph    306-306, 
    planar    306-306, 
    reducibility    250-250, 307, 
    representation    254-255, 
    shortest path    259-275, 279-280, 
        acyclic graph    259-260, 
        all pairs    348-350, 
        negative edge costs    259-260, 
        single source unweighted    259-264, 
        single source weighted    259-260, 390-390, 
        weighted    264-269, 
    strong components    296-298, 
    topological sort    255-258, 
    traveling salesman    300-301, 374-374, 
    undirected    253-254, 281-295, 298-298, 
    vertex cover    306-306, 
Greedy algorithm    311-327, 
    Huffman codes    315-320, 
    approximate bin packing    320-327, 
    coin changing    311-311, 
    minimum spanning tree    281-285, 
    processor scheduling    312-315, 
    shortest path    264-269, 
Gries, D.    12, 
    of functions    14-16, 
Gudes, E.    133, 
Guibas, L. J.    133, 156, 
Haken, D.    378, 
Halting problem    299-299, 
Hamiltonian cycle    299-301, 
Harary, F.    308, 
Harries, R.    156, 
Hash table    ?-135, 
Hasham, A.    195, 
Hashing    135-157, 255-255, 366-366, 
    closed hashing    142-150, 
        analysis of    142-144, 
        clustering    142-147, 
        deletion    145-145, 
    collision resolution    139-139, 
    comparison to binary search tree    152-153, 
    double hashing    147-148, 
    extendible hashing    150-152, 
    hash function    137-139, 
    linear probing    142-144, 
    load factor    141-142, 142, 
    open hashing    139-142, 
    quadratic probing    144-147, 
    random collision resolution    154-154, 
    rehashing    148-150, 
    table size    136-137, 137, 142-142, 142-142, 144-145, 
Heap    ?-158, 
Heap order property    161-161, 
Heapsort    204-204, 221, 
    implementation    204-204, 
Helman, P.    12, 
Hibbard, T. H.    133, 203, 203, 233, 
Hirschberg, D. S.    379, 379, 
Hoare, C. A. R.    233, 
Hoey, D.    380, 
Hopcroft, J. E.    36, 133, 250, 251, 251, 307, 308, 308, 308, 309, 309, 
Horner's rule    34-34, 
Horvath, E. C.    233, 
Hu, T. C.    379, 
Huang, B.    233, 
Huffman codes    315-320, 
Huffman, D. A.    379, 
Hutchinson, J. P.    12, 
Incerpi, J.    233, 
Indirect sorting    220-221, 
Infix expression    65-65, 85-87, 
Infix to postfix conversion    65-67, 
Inorder traversal    85-87, 118-120, 
Insertion sort    198-200, 201-201, 215-215, 
    analysis    199-200, 
    implementation    199-199, 
Inversion    199-200, 
Jensen, K.    12, 
Johnson, D. B.    195, 309, 
Johnson, D. S.    308, 379, 
Johnson, S. M.    233, 
Jonassen, A. T.    133, 
Josephus problem    74-75, 
K-d tree    131-131, 
Kaas, R.    195, 
Kaehler, E. B.    134, 
Kahn, A. B.    309, 
Karatsuba, A.    379, 
Karlin, A. R.    156, 
Karlton, P. L.    134, 
Karp, R. M.    156, 251, 308, 308, 309, 
Karzanov, A. V.    309, 
Kernighan, B. W.    12, 309, 
Knapsack problem    302, 315, 376-376, 
Knight's tour    376-376, 
Knuth, D. E.    12, 12, 36, 36, 36, 36, 133, 134, 134, 156, 156, 195, 233, 251, 309, 379, 379, 379, 379, 379, 379, 
Koffman, E. B.    12, 
Komlos, J.    156, 
Korsh, J.    378, 
Kruskal's algorithm    284-285, 
Kruskal, J. R.    309, 
Kuhn, H. W.    309, 
LaPoutre, J. A.    251, 251, 
Landau, G. M.    379, 
Landis, E. M.    133, 
Langston, M.    233, 
Larmore, L. L.    379, 379, 
Lawler, E. L.    309, 
Lazy binomial queue    392-396, 
    AVL tree    105-105, 
    binary search trees    91-93, 
    closed hash table    145-145, 
    leftist heap    192-192, 
    linked lists    76-76, 
Lazy merging    390-390, 392-396, 
    binomial queue    392-396, 
Lee, D. T.    380, 
Lee, K.    379, 
Leftist heap    173-178, 390-392, 
    cutting nodes    390-392, 
    decrease_key operation    390-392, 
    delete_min operation    177-178, 
    implementation of    175-176, 
    insertion    177-178, 
    merging    174-177, 
    structure    173-174, 
Lehmer, D    352, 
Lelewer, D. A.    379, 
Lemke, P.    380, 
Lempel, A.    380, 380, 
Len, C. C.    380, 
Level-order traversal    120-120, 
Lewis, T. G.    156, 
Liang, F. M.    379, 
Lin, S.    309, 
Line printer queue    159-159, ?-159, 
Linear congruential generator    352-354, 
Linked list    38-56, 57-58, 187-187, 254-255, 355-357, 
    adjacency    254-255, 
    circularly linked list    47-47, 51-52, 187-187, 
    common errors    46-46, 
    cursor implementation    52-56, 
    doubly linked list    46-47, 187-187, 
    for polynomial arithmetic    48-49, 
    header cell    40-46, 
    implementation of    39-46, 
    implementation of a stack    57-58, 
    multi-list    51-52, 
    skip list    355-357, 
List    ?-38, 
    array implementation    39-39, 
Little-Oh notation    14-16, 
Load factor    ?-141, 
    formulas for    3-4, 
    in running time    27-30, 
Longest path algorithms    ?-298, 
    information theoretic    223-223, 
    on-line bin packing    321-322, 371-371, 
    sorting    199-200, 221-223, 224-224, 
Lueker, G.    156, 
Mahajan, S.    379, 
Majority problem    35-35, 
Manacher, G. K.    233, 
    Strassen's algorithm    338-340, 
    chained    343-346, 
Maurer, W. D.    156, 
Maximum subsequence sum problem    17-17, 21-27, 36-36, 
McDiarmid, C. J. H.    195, 
McGreight, E. M.    133, 
McKenzie, B. J.    156, 
Median of three partitioning    213-213, 
Melhorn, K.    133, 134, 134, 156, 308, 309, 
Merge/find algorithm    ?-234, 
Mergesort    205-211, 221, 
    analysis    208-211, 
    implementation    208-208, 
    merging    205-207, 
Miller, G. L.    379, 
Miller, K. W.    380, 
Minimax algorithm    364-366, 
Minimum spanning tree    281-285, 374, 
Modular arithmetic    5-5, 144-145, 352-354, 357-358, 
Modularity    38-38, 
Moffat, A.    404, 
Molodowitch, M.    156, 
Monier, L.    380, 
Moore, J. S.    156, 
Morris, J. H.    156, 
Morris, R.    156, 
Multigraph    ?-306, 
Multiplication of integers    337-338, 
Multiway merge    ?-225, 
Munro, J. I.    133, 133, 133, 195, 195, 378, 
NP problems    299-302, 
NP-completeness    299-302, 306-307, 311, 315, 357-357, 
Negative cost cycle    259-260, 
Network flow    276-280, 
Nievergelt, J.    134, 156, 
Non-determinism    299-302, 
Non-preemptive scheduling    312, 
Odlyzko, A.    133, 
Ofman, Y.    379, 
    bin packing    321-324, 
    disjoint sets algorithm    235-251, 
    graph connectivity    248-249, 
    maximum subsequence sum problem    27, 
    symbol balancing    63-63, 
Optimal binary search tree    346-348, 
Orlin, J. B.    308, 
Ottman, T.    133, 
Pan, V.    380, 
Papdimitriou, C. H.    309, 
Papernov, A. A.    233, 
Paragraphing problem    375-375, 
Park, S. K.    380, 
Patashnik, O.    12, 
Path compression    ?-242, 
Pattern matching    154-155, 376-376, 
Perlis, A. J.    134, 
Peterson, W. W.    156, 
Pippenger, N.    156, 
Planar graph    ?-306, 
Plauger, P. J.    12, 
Poblete, P. V.    195, 
Polynomial ADT    48-51, 
Polyphase merge    ?-226, 
Port, G.    404, 
Postfix expression    63-67, 85-87, 
    evaluation of    63-65, 
Postorder traversal    81-82, 85-87, 120-120, 
Potential function    382-387, 
Pratt, V. R.    156, 203, 233, 378, 
Prefix code    316-317, 
Prefix form    85-85, 
Preorder traversal    80-81, 85-85, 120-120, 
Preparata, F. P.    380, 
Prim's algorithm    281-283, 
Prim, R. C.    309, 
Primality test    34-35, 357-358, 
Priority queue    158-196, 269-269, 283-283, 285-285, 320-320, 
    Dijkstra's algorithm    269-269, 390-390, 
    Fibonacci heap    269-269, 390-398, 
    Huffman code    320-320, 
    Kruskal's algorithm    285-285, 
    Prim's algorithm    283-283, 
    basic operations    158-159, 
    binary heap    160-169, 
    binomial queue    181-189, 
    d-heap    172-172, 
    deap    194-194, 
    external sorting    225-226, 227-228, 
    heapsort    204-204, 
    leftist heap    173-178, 
    min-max heap    193-194, 
    simple implementations    160-160, 
    simulation    171-172, 
    skew heap    179-181, 
    by contradiction    7-7, 
    by induction    5-6, 
Pugh, W.    380, 
Queue    69-73, 76-76, 120, 150, 172-172, 257-258, 260-264, 403-403, 
    array implementation of    70-71, 
    basic operations    69-69, 
    breadth first search    260-264, 
    double-ended    76-76, 403-403, 
    line printer    72-72, 
    topological sort    257-258, 
Queueing theory    72-73, 
Quicksort    211-220, 221, 
    analysis    217-220, 
    basic algorithm    211-211, 
    cutoff for small files    215-215, 
    dealing with duplicates    214-215, 
    implementation    215-216, 
    partitioning    213-215, 
    picking the pivot    212-213, 
    pitfalls    214-215, 216-216, 
Rabin, M. O.    156, 380, 380, 
Radix sort    49-51, 
Ramanan, P.    380, 
Random number generator    352-354, 
Random permutation generator    33-34, 
Randomized algorithm    213-213, 336-337, 350-358, 
    primality test    357-358, 
    principles of    350-352, 
    quicksort    213-213, 
    selection    336-337, 
    skip list    355-357, 
    solution of    209-211, 217-220, 328-330, 
Recursion    ?-23, 
    backtracking algorithm    358-369, 
    bad uses    68-69, 340-342, 
    depth first search    285-298, 
    exponentiation    29-30, 
    four basic rules    10-10, 
    leftist heap    172-178, 
    path compression    242-242, 
    principles of    7-10, 
    printing out numbers    9-10, 
    recovering shortest path    266-267, 
    selection    220-220, 
    skew heap    179-181, 
    tail recursion    68-69, 
    trees    77-134, 
Recursively undecidable problems    ?-299, 
Reducibility    ?-250, 
Reduction    300-302, 
Reed, B. A.    195, 
Reflexive relation    235-235, 
Rehashing    ?-148, 
Reingold, E. M.    134, 
Relation    235-235, 
Replacement selection    ?-227, 
Rivest, R. L.    251, 378, 379, 
Roberts, E.    12, 
Roberts, F. S.    12, 
Run construction    ?-224, 
Sack, J. R.    195, 195, 
Saks, M. E.    251, 
Santoro, N.    195, 
Satisfiability    301-301, 
Saxe, J. B.    378, 
    operating system    159-159, 
Scheduling    302, 312-315, 
Schonhage, A.    251, 
Schrage, L.    353, 380, 
Scroggs, R. E.    134, 
Sedgewick, R.    133, 195, 203, 233, 233, 233, 233, 233, 233, 233, 233, 233, 
    in a binary search tree    131, 
    in linear worst case time    334-336, 
    inefficient algorithms for    2-2, 
    priority queue solution    170-171, 
    quickselect    220-220, 
    sampling algorithm    336-337, 
    disjoint sets algorithm    242-248, 
    list    75-75, 403-403, 
    move to root heuristic    105-110, 
    skew heap    179-181, 387-390, 
    splay tree    105-118, 398-402, 
Sentinel    163-163, 199, 254, 
Series    4-5, 
    arithmetic    4-5, 
    geometric    4-4, 
    harmonic    5-5, 219, 
    sum of \x'0'\f2\s11k\v'-44u'\s-3€th\s+3€\v'44u'\s11\f(01 power    5, 
Shamos, M. I.    380, 380, 
Sharir, M.    309, 
Shell, D. L.    200, 201, 203, 233, 
Shellsort    32, 200-204, 
    analysis    201-204, 
        Hibbard's increments    203-203, 
        Shell's increments    201-202, 
    average running time    203-203, 232-232, 
    implementation    201-201, 
Shing, M. R.    379, 
Short-circuit operation    42-42, 
Shortest path algorithms    ?-259, 
Shrairman, R.    195, 
Simulation    72-73, 171-172, 
Skew heap    179-181, 387-390, 
    amortized analysis of    387-390, 
Skiena, S. S.    380, 
Skip list    355-357, 372-373, 
Sleator, D. D.    134, 134, 195, 195, 404, 404, 404, 
Smith, H. F.    134, 
Smith, W. D.    380, 
Sorting    197-233, 
    bucket sort    49-51, 223-224, 
    comparison based    198-198, 
    comparison of algorithms    228-229, 
    external    224-228, 
    heapsort    204-204, 
    insertion sort    198-200, 
    large records    220-221, 
    lower bounds    199-200, 221-223, 224-224, 
    mergesort    205-211, 
    quicksort    211-220, 
    radix sort    49-51, 
    shellsort    200-204, 
    stable    230-230, 
    topological    255-258, 
    tree sort    126-126, 
Sparse graph    254, 269, 
Spelling checker    153-153, 154-154, 
Spencer, T. H.    308, 
Splay tree    105-118, 398-402, 403-403, 
    amortized analysis of    398-402, 
    analysis of    118-118, 
    deletion    117-118, 
    merging    403-403, 
    self adjustment    105-116, 
        implementation of    116-117, 
        zig    110-116, 
        zig-zag    110-116, 
        zig-zig    110-116, 
Stack    56-69, 257-257, 
Stack frame    68-69, 
    and recursion    67-69, 
    array implementation    58-62, 
    balancing parenthesis    63-63, 
    fundamental operations    56-56, 
    list implementation    57-58, 
    topological sort    257-257, 
Stasevich, G. V.    233, 
Steiglitz, K.    309, 
Stirling's formula    231-231, 
Strassen's algorithm    338-340, 
Strassen, V.    380, 
Strong components    296-298, 
Strong, H. R.    156, 
Strothotte, T.    195, 195, 195, 
Symbol table    153-153, 
Symmetric relation    235-235, 
Szemeredi, E.    156, 156, 
Tail recursion    68-69, 
Tardos, E.    308, 
Tarjan, R. E.    134, 134, 134, 195, 195, 195, 195, 195, 251, 251, 251, 251, 251, 251, 308, 308, 308, 308, 308, 308, 308, 309, 309, 309, 309, 309, 309, 378, 404, 404, 404, 404, 404, 404, 404, 
Theta notation    14-16, 
Thornton, C.    134, 
Thurston, W. P.    134, 
Tic-tac-toe    364-369, 
Topological sort    255-258, 
Transitive relation    235-235, 
Transposition table    153-153, 366-366, 
Traveling salesman    300-301, 
Tree    77-134, 160-161, 187-187, 222-223, 281-285, 315-320, 363-364, 366-369, 
    2-3 tree    121-125, 
    AVL tree    96-105, 
    B*-tree    130-130, 
    B-tree    120-125, 
    binary search tree    87-118, 
    binary tree    82-87, 
    complete binary tree    160-161, 
    decision tree    222-223, 
    definitions    78-79, 
    game    366-369, 
    k-d tree    131-131, 
    left child/right sibling implementation    79-79, 187-187, 
    minimum spanning    281-285, 
    red black    132, 
    splay    363-364, 
    splay tree    105-118, 
    threaded    131-131, 
    traversals    79-82, 85-87, 118-120, 
    trie    315-320, 
    weight-balanced    132, 
Trie    315-320, 
Tsur, S.    133, 
Tucker, A.    12, 
Turing machine    301-301, 
Turnpike reconstruction    358-364, 
Ullman, J. D.    36, 133, 250, 251, 307, 
Undecidability    298-299, 
Union/find algorithm    ?-234, 
Vallner, S.    195, 
Veroff, R.    12, 
Vertex cover    ?-306, 
Vishkin, U.    379, 
Vitter, J. S.    156, 
Voronoi diagram    374-374, 
Vuillemin, J.    196, 404, 
Wagner, R. A.    380, 
Wegman, M. N.    156, 
Wein, J.    378, 
Weiss, M. A.    233, 233, 233, 
Westbrook, J.    251, 
Williams, J. W. J.    196, 233, 
Winograd, S.    378, 
Wirth, N.    12, 
Witten, I. H.    378, 
Wong, J. K.    309, 
Wood, D.    133, 133, 
Yao, A. C.    134, 157, 157, 233, 251, 309, 380, 
Yao, F. F.    380, 
Zijlstra, E.    195, 
Ziv, J.    380, 380, 
Ziviana, N.    133, 
d-heap    172-172, 302, 390-390, 
two-three tree@2-3 tree    121-125, 403-403, 
van Emde Boas, P.    195, 
van Leeuwen, J.    251,