443:
5066:
723:
tree known to be less than or greater than current item respectively. The middle tree consists of the sub-tree rooted at the current node. These three sets are updated down the access path while keeping the splay operations in check. Another method, semisplaying, modifies the zig-zig case to reduce the amount of restructuring done in all operations.
4754:
722:
Another method which can be used is based on the argument that the tree can be restructured during the way down the access path instead of making a second pass. This top-down splaying routine uses three sets of nodes – left tree, right tree and middle tree. The first two contain all items of original
231:
of the access pattern. For many patterns of non-random operations, also, splay trees can take better than logarithmic time, without requiring advance knowledge of the pattern. According to the unproven dynamic optimality conjecture, their performance on all access patterns is within a constant factor
416:
There are three types of splay steps, each of which has two symmetric variants: left- and right-handed. For the sake of brevity, only one of these two is shown for each type. (In the following diagrams, circles indicate nodes of interest and triangles indicate sub-trees of arbitrary size.) The three
7512:
The results show that semi-splaying, which was introduced in the same paper as splaying, performs better than splaying under almost all possible conditions. This makes semi-splaying a good alternative for all applications where normally splaying would be applied. The reason why splaying became so
718:
Splaying, as mentioned above, is performed during a second, bottom-up pass over the access path of a node. It is possible to record the access path during the first pass for use during the second, but that requires extra space during the access operation. Another alternative is to keep a parent
7041:
The CBTree augments the splay tree with access counts at each node and uses them to restructure infrequently. A variant of the CBTree called the LazyCBTree does at most one rotation on each lookup. This is used along with an optimistic hand-over-hand validation scheme to make a concurrent
726:
Below there is an implementation of splay trees in C++, which uses pointers to represent each node on the tree. This implementation is based on bottom-up splaying version and uses the second method of deletion on a splay tree. Also, unlike the above definition, this C++ version does
247:. Splaying the tree for a certain element rearranges the tree so that the element is placed at the root of the tree. One way to do this with the basic search operation is to first perform a standard binary tree search for the element in question, and then use
3787:, we first calculate ΔΦ: the change in the potential caused by a splay operation. We check each case separately. Denote by rank' the rank function after the operation. x, p and g are the nodes affected by the rotation operation (see figures above).
4366:
5061:{\displaystyle O\left(\sum _{x\in sequence}{\left(1+3\log {\frac {W}{w(x)}}\right)}+\sum _{x\in tree}{\log {\frac {W}{w(x)}}}\right)=O\left(m+\sum _{x\in sequence}{\log {\frac {W}{w(x)}}}+\sum _{x\in tree}{\log {\frac {W}{w(x)}}}\right)}
366:
closer to the root. By performing a splay operation on the node of interest after every access, the recently accessed nodes are kept near the root and the tree remains roughly balanced, so it provides the desired amortized time bounds.
259:
Good performance for a splay tree depends on the fact that it is self-optimizing, in that frequently accessed nodes will move nearer to the root where they can be accessed more quickly. The worst-case height—though unlikely—is
4732:
6280:
698:
In this way, deletion is reduced to the problem of removing a node with 0 or 1 children. Unlike a binary search tree, in a splay tree after deletion, we splay the parent of the removed node to the top of the tree.
4622:
4479:
4206:
5473:
accesses. They spend less time on the more frequent items. Another way of stating the same result is that, on input sequences where the items are drawn independently at random from a non-uniform
6428:
In addition to the proven performance guarantees for splay trees there is an unproven conjecture of great interest from the original
Sleator and Tarjan paper. This conjecture is known as the
7666:
The time needed to access data in a splay tree is known to be at most a small constant multiple of the access time of a statically optimum tree, when amortized over any series of operations.
330:
operations concurrently. This also makes them unsuitable for general use in purely functional programming, although even there they can be used in limited ways to implement priority queues.
307:
elements in non-decreasing order. Since the height of a tree corresponds to the worst-case access time, this means that the actual cost of a single operation can be high. However the
7034:
Another way to reduce restructuring is to do full splaying, but only in some of the access operations – only when the access path is longer than a threshold, or only in the first
5720:
6200:
326:
operations). This complicates the use of such splay trees in a multi-threaded environment. Specifically, extra management is needed if multiple threads are allowed to perform
232:
of the best possible performance that could be achieved by any other self-adjusting binary search tree, even one selected to fit that pattern. The splay tree was invented by
7519:
Cole, Richard; Mishra, Bud; Schmidt, Jeanette; Siegel, Alan (January 2000). "On the
Dynamic Finger Conjecture for Splay Trees. Part I: Splay Sorting log n-Block Sequences".
4229:
719:
pointer in every node, which avoids the need for extra space during access operations but may reduce overall time efficiency because of the need to update those pointers.
5437:
689:
Swap its value with that of either the rightmost node of its left sub tree (its in-order predecessor) or the leftmost node of its right subtree (its in-order successor).
4054:
The amortized cost of any operation is ΔΦ plus the actual cost. The actual cost of any zig-zig or zig-zag operation is 2 since there are two rotations to make. Hence:
5808:
6939:
6532:
6319:
6123:
5961:
5757:
5635:
5389:
5201:
5157:
6804:
6757:
6710:
6683:
5283:
7016:
6833:
6561:
6395:
6001:
251:
in a specific fashion to bring the element to the top. Alternatively, a top-down algorithm can combine the search and the tree reorganization into a single phase.
5463:
5235:
6987:
6967:
6904:
6881:
6861:
6777:
6730:
6645:
6601:
6581:
6497:
6477:
6457:
6422:
8778:
303:
The most significant disadvantage of splay trees is that the height of a splay tree can be linear. For example, this will be the case after accessing all
227:
time. For random access patterns drawn from a non-uniform random distribution, their amortized time can be faster than logarithmic, proportional to the
4640:
560:
Given two trees S and T such that all elements of S are smaller than the elements of T, the following steps can be used to join them to a single tree:
8454:
6207:
4211:
To go from the amortized time to the actual time, we must add the decrease in potential from the initial state before any operation is done (Φ
8748:
8179:
7854:
7619:
277:
8386:
8822:
7930:
731:
splay the tree on finds – it only splays on insertions and deletions, and the find operation, therefore, has linear time complexity.
8687:
7685:
7659:
706:
The node to be deleted is first splayed, i.e. brought to the root of the tree and then deleted. leaves the tree with two sub trees.
212:
7078:
4537:
4392:
8046:
8477:
7650:
7073:
549:
500:
337:
random, the additional splaying overhead adds a significant constant factor to the cost compared to less-dynamic alternatives.
8482:
7635:
Proceedings of the Sixth Annual ACM-SIAM Symposium on
Discrete Algorithms, 22–24 January 1995. San Francisco, California, USA
7411:
6432:
and it basically claims that splay trees perform as well as any other binary search tree algorithm up to a constant factor.
4125:
8447:
5486:
435:. Zig steps exist to deal with the parity issue, will be done only as the last step in a splay operation, and only when
228:
126:
7837:
Bender, Michael A.; Conway, Alex; Farach-Colton, Martin; Kuszmaul, William; Tagliavini, Guido (2023). "Tiny
Pointers".
5469:
This theorem implies that splay trees perform as well as an optimum static binary search tree on sequences of at least
8561:
8544:
5243:
This theorem implies that splay trees perform as well as static balanced binary search trees on sequences of at least
6003:
be the number of distinct elements accessed before the previous time element x was accessed. The cost of performing
6202:. Note that here the weights change during the sequence. However, the sequence of weights is still a permutation of
8760:
8527:
8522:
8011:
6407:
6340:
8517:
8396:
7554:
7521:
8556:
8551:
8510:
8440:
7952:
5474:
8791:
8768:
7124:
7088:
7046:
40:
6969:
be any permutation of the elements of the splay tree. Then the cost of deleting the elements in the order
8773:
8573:
7923:
7563:
7530:
7485:
5647:
322:
The representation of splay trees can change even when they are accessed in a 'read-only' manner (i.e. by
61:
6374:) time, regardless of the initial structure of the splay tree. The tightest upper bound proven so far is
6134:
8817:
8812:
8699:
8654:
8616:
8090:
7939:
5482:
269:
268:). Having frequently-used nodes near the root is an advantage for many practical applications (also see
7027:
In order to reduce the number of restructuring operations, it is possible to replace the splaying with
4361:{\displaystyle \Phi _{i}-\Phi _{f}=\sum _{x}{\mathrm {rank} _{i}(x)-\mathrm {rank} _{f}(x)}=O(n\log n)}
7552:
Cole, Richard (January 2000). "On the
Dynamic Finger Conjecture for Splay Trees. Part II: The Proof".
5076:
There are several theorems and conjectures regarding the worst-case runtime for performing a sequence
8639:
8080:
8035:
7719:
7672:
Lucas, Joan M. (1991). "On the
Competitiveness of Splay Trees: Relations to the Union-Find Problem".
8194:
7970:
7568:
7535:
7119:
65:
8682:
8050:
7490:
4100:), since we use The Zig operation at most once and the amortized cost of zig is at most 1+3(rank'(
8667:
8532:
8492:
8361:
8320:
8146:
8136:
8015:
7860:
7825:
7793:
7764:
7747:
7709:
7629:
Grinberg, Dennis; Rajagopalan, Sivaramakrishnan; Venkatesan, Ramarathnam; Wei, Victor K. (1995).
7457:
7438:
6883:
6534:, and that between accesses can make any rotations in the tree at a cost of 1 per rotation. Let
4089:
3735:
629:
464:
are either both right children or are both left children. The picture below shows the case where
224:
208:
119:
7513:
prominent while semi-splaying is relatively unknown and much less studied is hard to understand.
5400:
8601:
8500:
8255:
7956:
7916:
7850:
7681:
7655:
7615:
273:
211:
with the additional property that recently accessed elements are quick to access again. Like
5778:
17:
8624:
8346:
7842:
7817:
7785:
7756:
7739:
7598:
7573:
7540:
7503:
7495:
7447:
7420:
7390:
6909:
6502:
6289:
6010:
5839:
5727:
5515:
5300:
5171:
5105:
3784:
3739:
291:
243:
All normal operations on a binary search tree are combined with one basic operation, called
84:
7403:
6782:
6735:
6688:
6661:
5261:
8644:
8586:
8290:
8040:
6992:
6809:
6537:
6377:
5977:
564:
Splay the largest item in S. Now this item is in the root of S and has a null right child.
107:
6759:
in preorder (i.e., depth first search order). The total cost of performing the sequence
6651:
There are several corollaries of the dynamic optimality conjecture that remain unproven:
5442:
5214:
7723:
7377:
Afek, Yehuda; Kaplan, Haim; Korenfeld, Boris; Morrison, Adam; Tarjan, Robert E. (2014).
8736:
8714:
8539:
8463:
8243:
8238:
8121:
8055:
7731:
7093:
6972:
6952:
6889:
6866:
6846:
6762:
6715:
6606:
6586:
6566:
6482:
6462:
6442:
4372:
233:
216:
73:
7424:
8806:
8709:
8606:
8591:
8391:
8371:
8214:
8103:
8030:
7883:
7864:
7805:
7735:
7696:
7586:
7114:
7083:
248:
237:
7965:
7829:
7797:
7461:
8351:
8315:
8131:
8126:
8108:
8020:
7878:
7768:
7645:
7630:
4531:
The same analysis applies and the amortized cost of a splaying operation is again:
596:. Now it is in the root so the tree to its left contains all elements smaller than
215:, a splay tree performs basic operations such as insertion, look-up and removal in
7654:. Vol. 3: Sorting and Searching (3rd ed.). Addison-Wesley. p. 478.
3780:Φ will tend to be high for poorly balanced trees and low for well-balanced trees.
7846:
4727:{\displaystyle \Phi _{i}-\Phi _{f}\leq \sum _{x\in tree}{\log {\frac {W}{w(x)}}}}
8704:
8629:
8401:
8366:
8356:
8270:
8204:
8199:
8189:
8098:
7947:
7676:. Series in Discrete Mathematics and Theoretical Computer Science. Vol. 7.
7470:
7068:
287:
Comparable performance: Average-case performance is as efficient as other trees.
7839:
Proceedings of the 2023 Annual ACM-SIAM Symposium on
Discrete Algorithms (SODA)
7378:
496:
method introduced by Allen and Munro prior to the introduction of splay trees.
8596:
8411:
8381:
8341:
8184:
8113:
7980:
7602:
7577:
7544:
7394:
6603:
of accesses. Then the cost for a splay tree to perform the same accesses is
6275:{\displaystyle 1,{\tfrac {1}{4}},{\tfrac {1}{9}},\cdots ,{\tfrac {1}{n^{2}}}}
8634:
8581:
8416:
8376:
8223:
8151:
8141:
7888:
7776:
Sundar, Rajamani (1992). "On the Deque conjecture for the splay algorithm".
7098:
6411:
442:
308:
492:. Zig-zig steps are the only thing that differentiate splay trees from the
8731:
8305:
7995:
7674:
On-line
Algorithms: Proceedings of a DIMACS Workshop, February 11–13, 1991
7452:
7433:
5293:. If every element is accessed at least once, then the cost of performing
580:, return two new trees: one containing all elements less than or equal to
8677:
8505:
8421:
8295:
8275:
8248:
8233:
7985:
7058:
6419:
Do splay trees perform as well as any other binary search tree algorithm?
7898:
7507:
7499:
8726:
8672:
8406:
8310:
8285:
8228:
8075:
8005:
8000:
7975:
7908:
7821:
7789:
7639:
Average depth of access in a splay tree is proportional to the entropy.
7587:"On the sequential access theorem and Deque conjecture for splay trees"
7760:
8721:
8662:
8325:
8300:
8280:
8265:
8174:
8065:
7990:
7893:
7677:
7104:
7063:
7045:
Using pointer-compression techniques, it is possible to construct a
6886:
operations (push, pop, inject, eject). Then the cost of performing
4634:
The decrease from the initial to the final potential is bounded by:
7698:
Splay Trees, Davenport-Schinzel
Sequences, and the Deque Conjecture
8432:
8169:
8070:
8025:
7903:
7714:
7610:
Goodrich, Michael; Tamassia, Roberto; Goldwasser, Michael (2014).
7109:
548:
499:
7360:
5508:
be any fixed element (the 'finger'). Then the cost of performing
8743:
8161:
7678:
Center for
Discrete Mathematics and Theoretical Computer Science
7469:
Brinkmann, Gunnar; Degraer, Jan; De Loof, Karel (January 2009).
7379:"The CB tree: a practical concurrent self-adjusting search tree"
7262:
7031:, in which an element is splayed only halfway towards the root.
472:
are both left children. The tree is rotated on the edge joining
8436:
7912:
7879:
NIST's Dictionary of Algorithms and Data Structures: Splay Tree
4512:) = the sum of weights of nodes in the sub-tree rooted at node
7808:(1985). "Sequential access in splay trees takes linear time".
7404:"Randomized Splay Trees: Theoretical and Experimental Results"
6459:
be any binary search tree algorithm that accesses an element
4617:{\displaystyle 1+3(\mathrm {rank} (root)-\mathrm {rank} (x))}
665:
is the root, S is its left sub-tree and T its right sub-tree.
5824:
Assume that the 'finger' for each step accessing an element
4489:
The above analysis can be generalized in the following way.
547:
498:
441:
7349:
4474:{\displaystyle T_{\mathrm {actual} }(m)=O(m\log n+n\log n)}
709:
The two sub-trees are then joined using a "join" operation.
600:
and the tree to its right contains all element larger than
358:
to move it to the root. A splay operation is a sequence of
315:). Also, the expected access cost can be reduced to O(log
7199:
4217:) to the final state after all operations are completed (Φ
654:
Use the split operation to split the tree at the value of
7183:
7181:
7179:
294:: Splay trees do not need to store any bookkeeping data.
7274:
7187:
3750:) = the number of nodes in the sub-tree rooted at node
7402:
Albers, Susanne; Karpinski, Marek (28 February 2002).
6712:
be two splay trees containing the same elements. Let
6254:
6233:
6218:
4201:{\displaystyle T_{\mathrm {amortized} }(m)=O(m\log n)}
3776:Φ = the sum of the ranks of all the nodes in the tree.
6995:
6975:
6955:
6912:
6892:
6869:
6849:
6812:
6785:
6765:
6738:
6732:
be the sequence obtained by visiting the elements in
6718:
6691:
6664:
6609:
6589:
6569:
6540:
6505:
6485:
6465:
6445:
6380:
6292:
6210:
6137:
6013:
5980:
5842:
5781:
5730:
5650:
5518:
5445:
5403:
5303:
5264:
5217:
5174:
5108:
4757:
4643:
4540:
4395:
4232:
4128:
427:
is the root. The tree is rotated on the edge between
311:
access cost of this worst case is logarithmic, O(log
7706:
Proc. 19th ACM-SIAM Symposium on Discrete Algorithms
4379:, the minimum rank is 0 and the maximum rank is log(
678:, use the same method as with a binary search tree:
8759:
8653:
8615:
8572:
8491:
8470:
8334:
8213:
8160:
8089:
7946:
7471:"Rehabilitation of an unloved child: semi-splaying"
3738:of static splay trees can be carried out using the
584:and the other containing all elements greater than
529:is right). The tree is rotated on the edge between
176:
155:
134:
113:
106:
90:
83:
71:
57:
49:
39:
34:
7010:
6981:
6961:
6933:
6898:
6875:
6855:
6827:
6798:
6771:
6751:
6724:
6704:
6677:
6639:
6595:
6575:
6555:
6526:
6491:
6471:
6451:
6389:
6366:elements of a splay tree in symmetric order takes
6313:
6274:
6194:
6117:
5995:
5955:
5802:
5751:
5714:
5629:
5500:Assume that the items are numbered from 1 through
5457:
5431:
5383:
5277:
5229:
5195:
5151:
5060:
4726:
4616:
4473:
4360:
4200:
4088:When summed over the entire splay operation, this
607:Split the right subtree from the rest of the tree.
7884:Implementations in C and Java (by Daniel Sleator)
6339:This theorem is equivalent to splay trees having
4375:can be justified by the fact that for every node
537:, and then rotated on the resulting edge between
439:has odd depth at the beginning of the operation.
7894:Fast and efficient implementation of Splay trees
7166:
7164:
7162:
7160:
7211:
7158:
7156:
7154:
7152:
7150:
7148:
7146:
7144:
7142:
7140:
378:is the left or right child of its parent node,
370:Each particular step depends on three factors:
354:is accessed, a splay operation is performed on
272:), and is particularly useful for implementing
5828:is the element accessed in the previous step,
8448:
7924:
7170:
5485:) cost of each access is proportional to the
4737:since the maximum size of any single node is
8:
6423:(more unsolved problems in computer science)
6348:
5968:
5818:
5773:) since the weight of any item is at least
5494:
5252:
5092:
8455:
8441:
8433:
7931:
7917:
7909:
7223:
4386:Now we can finally bound the actual time:
80:
7713:
7567:
7534:
7489:
7451:
7432:Allen, Brian; Munro, Ian (October 1978).
7297:
7295:
6994:
6974:
6954:
6911:
6891:
6868:
6848:
6811:
6790:
6784:
6764:
6743:
6737:
6717:
6696:
6690:
6669:
6663:
6608:
6588:
6568:
6539:
6504:
6484:
6464:
6444:
6379:
6291:
6263:
6253:
6232:
6217:
6209:
6186:
6156:
6136:
6047:
6012:
5979:
5934:
5920:
5905:
5867:
5841:
5794:
5785:
5780:
5729:
5706:
5691:
5677:
5669:
5649:
5608:
5594:
5552:
5517:
5444:
5423:
5402:
5368:
5359:
5347:
5322:
5302:
5269:
5263:
5216:
5173:
5107:
5031:
5024:
5003:
4974:
4967:
4934:
4886:
4879:
4858:
4824:
4803:
4770:
4756:
4702:
4695:
4674:
4661:
4648:
4642:
4588:
4553:
4539:
4401:
4400:
4394:
4318:
4304:
4285:
4271:
4269:
4263:
4250:
4237:
4231:
4134:
4133:
4127:
588:. This can be done in the following way:
567:Set the right child of the new root to T.
7200:Goodrich, Tamassia & Goldwasser 2014
6479:by traversing the path from the root to
7899:Top-Down Splay Tree Java implementation
7313:
7234:
7232:
7136:
7101:, a sorting algorithm using splay trees
7708:. Vol. 0707. pp. 1115–1124.
7612:Data Structures and Algorithms in Java
7337:
7325:
7301:
31:
7889:Pointers to splay tree visualizations
7434:"Self-organizing binary search trees"
7250:
7238:
7188:Brinkmann, Degraer & De Loof 2009
5974:At any time during the sequence, let
4748:Hence the actual time is bounded by:
643:As a result, the newly inserted node
7:
7740:"Self-Adjusting Binary Search Trees"
7286:
6414:Unsolved problem in computer science
5715:{\displaystyle w(x)=1/(|x-f|+1)^{2}}
5098:The cost of performing the sequence
5084:accesses in a splay tree containing
6195:{\displaystyle w(x)=1/(t(x)+1)^{2}}
3490:/* //the alternative implementation
484:, then rotated on the edge joining
7631:"Splay trees for data compression"
7614:(6 ed.). Wiley. p. 506.
4658:
4645:
4598:
4595:
4592:
4589:
4563:
4560:
4557:
4554:
4417:
4414:
4411:
4408:
4405:
4402:
4314:
4311:
4308:
4305:
4281:
4278:
4275:
4272:
4247:
4234:
4159:
4156:
4153:
4150:
4147:
4144:
4141:
4138:
4135:
213:self-balancing binary search trees
25:
7633:. In Clarkson, Kenneth L. (ed.).
7478:Software: Practice and Experience
333:Finally, when the access pattern
319:) by using a randomized variant.
27:Self-adjusting binary search tree
264:), with the average being O(log
7651:The Art of Computer Programming
7074:Geometry of binary search trees
5481:items, the amortized expected (
5285:be the number of times element
521:is a left child or vice versa (
7637:. ACM/SIAM. pp. 522–530.
7412:Information Processing Letters
7079:Iacono's working set structure
7005:
6999:
6928:
6916:
6822:
6816:
6634:
6631:
6625:
6613:
6550:
6544:
6515:
6509:
6437:Dynamic Optimality Conjecture:
6308:
6302:
6183:
6173:
6167:
6161:
6147:
6141:
6107:
6098:
6092:
6086:
5990:
5984:
5945:
5935:
5921:
5917:
5746:
5740:
5703:
5692:
5678:
5674:
5660:
5654:
5619:
5609:
5595:
5591:
5413:
5407:
5184:
5178:
5046:
5040:
4989:
4983:
4901:
4895:
4839:
4833:
4717:
4711:
4611:
4608:
4602:
4582:
4567:
4550:
4468:
4438:
4429:
4423:
4355:
4340:
4330:
4324:
4297:
4291:
4195:
4180:
4171:
4165:
4111:So now we know that the total
3493:void erase(const T &key) {
647:becomes the root of the tree.
396:is the left or right child of
389:is the root or not, and if not
1:
7425:10.1016/s0020-0190(01)00230-7
6430:dynamic optimality conjecture
6402:Dynamic optimality conjecture
5166:Take a constant weight, e.g.
18:Dynamic optimality conjecture
7847:10.1137/1.9781611977554.ch21
7591:Theoretical Computer Science
6323:. The net potential drop is
5761:. The net potential drop is
576:Given a tree and an element
8779:Directed acyclic word graph
8545:Double-ended priority queue
7585:Elmasry, Amr (April 2004).
7212:Albers & Karpinski 2002
4631:is the sum of all weights.
714:Implementation and variants
661:Create a new tree in which
8839:
6408:Optimal binary search tree
6405:
6341:key-independent optimality
5432:{\displaystyle w(x)=q_{x}}
3523:sMax = subtree_maximum(s);
658:to two sub-trees: S and T.
417:types of splay steps are:
8823:Amortized data structures
8787:
7603:10.1016/j.tcs.2004.01.019
7578:10.1137/S009753979732699X
7555:SIAM Journal on Computing
7545:10.1137/s0097539797326988
7522:SIAM Journal on Computing
7395:10.1007/s00446-014-0229-0
7171:Sleator & Tarjan 1985
6356:Sequential Access Theorem
5832:. The cost of performing
5253:Static Optimality Theorem
4527:) and Φ exactly as above.
4092:to 1 + 3(rank(root)−rank(
3983:
3875:
692:Remove that node instead.
79:
8511:Retrieval Data Structure
8387:Left-child right-sibling
6583:to perform the sequence
5504:in ascending order. Let
5475:probability distribution
733:
8792:List of data structures
8769:Binary decision diagram
8217:data partitioning trees
8175:C-trie (compressed ADT)
7125:Zipper (data structure)
7089:List of data structures
5803:{\displaystyle 1/n^{2}}
4115:time for a sequence of
509:this step is done when
452:this step is done when
423:this step is done when
8774:Directed acyclic graph
7263:Grinberg et al. (1995)
7224:Allen & Munro 1978
7012:
6983:
6963:
6935:
6934:{\displaystyle O(m+n)}
6900:
6877:
6857:
6829:
6800:
6773:
6753:
6726:
6706:
6679:
6641:
6597:
6577:
6557:
6528:
6527:{\displaystyle d(x)+1}
6493:
6473:
6453:
6391:
6315:
6314:{\displaystyle W=O(1)}
6276:
6196:
6119:
6118:{\displaystyle O\left}
5997:
5957:
5956:{\displaystyle O\left}
5910:
5819:Dynamic Finger Theorem
5804:
5753:
5752:{\displaystyle W=O(1)}
5716:
5631:
5630:{\displaystyle O\left}
5459:
5433:
5385:
5384:{\displaystyle O\left}
5279:
5231:
5197:
5196:{\displaystyle w(x)=1}
5153:
5152:{\displaystyle O\left}
5062:
4728:
4618:
4475:
4362:
4202:
3508:node *t = z->right;
552:
503:
446:
362:, each of which moves
62:Daniel Dominic Sleator
7695:Pettie, Seth (2008).
7453:10.1145/322092.322094
7383:Distributed Computing
7042:self-adjusting tree.
7013:
6984:
6964:
6936:
6901:
6878:
6858:
6830:
6801:
6799:{\displaystyle T_{1}}
6774:
6754:
6752:{\displaystyle T_{2}}
6727:
6707:
6705:{\displaystyle T_{2}}
6680:
6678:{\displaystyle T_{1}}
6656:Traversal Conjecture:
6642:
6598:
6578:
6558:
6529:
6494:
6474:
6454:
6392:
6316:
6277:
6197:
6120:
5998:
5958:
5863:
5805:
5754:
5717:
5632:
5495:Static Finger Theorem
5489:of the distribution.
5460:
5434:
5386:
5280:
5278:{\displaystyle q_{x}}
5232:
5198:
5154:
5063:
4729:
4619:
4476:
4363:
4203:
3505:node *s = z->left;
551:
517:is a right child and
502:
445:
270:locality of reference
8640:Unrolled linked list
8397:Log-structured merge
7940:Tree data structures
7011:{\displaystyle O(n)}
6993:
6973:
6953:
6910:
6890:
6867:
6847:
6828:{\displaystyle O(n)}
6810:
6783:
6763:
6736:
6716:
6689:
6662:
6607:
6587:
6567:
6556:{\displaystyle A(S)}
6538:
6503:
6483:
6463:
6443:
6390:{\displaystyle 4.5n}
6378:
6290:
6208:
6135:
6011:
5996:{\displaystyle t(x)}
5978:
5840:
5779:
5728:
5648:
5516:
5443:
5401:
5301:
5262:
5215:
5172:
5106:
5072:Performance theorems
4755:
4641:
4538:
4493:Assign to each node
4393:
4230:
4126:
3550:t->parent = sMax;
3520:s->parent = NULL;
3496:node *z = find(key);
513:is not the root and
456:is not the root and
283:Advantages include:
8688:Self-balancing tree
7724:2007arXiv0707.2160P
7680:. pp. 95–124.
7038:access operations.
6906:on a splay tree is
6352: —
5972: —
5969:Working Set Theorem
5822: —
5498: —
5458:{\displaystyle W=m}
5256: —
5230:{\displaystyle W=n}
5096: —
4741:and the minimum is
3541:sMax->right = t;
635:Perform a splay on
620:into a splay tree:
66:Robert Endre Tarjan
8668:Binary search tree
8533:Double-ended queue
8362:Fractal tree index
7957:associative arrays
7822:10.1007/BF02579253
7790:10.1007/BF01191208
7748:Journal of the ACM
7732:Sleator, Daniel D.
7439:Journal of the ACM
7361:Bender et al. 2023
7008:
6979:
6959:
6931:
6896:
6884:double-ended queue
6873:
6853:
6825:
6796:
6769:
6749:
6722:
6702:
6675:
6637:
6593:
6573:
6553:
6524:
6489:
6469:
6449:
6387:
6354:Also known as the
6350:
6311:
6272:
6270:
6242:
6227:
6192:
6129:
6115:
6079:
5993:
5970:
5953:
5820:
5800:
5749:
5712:
5642:
5627:
5584:
5496:
5455:
5429:
5395:
5381:
5342:
5275:
5254:
5227:
5193:
5164:
5149:
5094:
5058:
5023:
4966:
4878:
4802:
4724:
4694:
4614:
4471:
4358:
4268:
4198:
4096:)) which is O(log
3736:amortized analysis
3514:node *sMax = NULL;
745:#define SPLAY_TREE
742:#ifndef SPLAY_TREE
739:<functional>
686:has two children:
630:binary search tree
616:To insert a value
553:
504:
447:
278:garbage collection
209:binary search tree
8800:
8799:
8602:Hashed array tree
8501:Associative array
8430:
8429:
7856:978-1-61197-755-4
7806:Tarjan, Robert E.
7761:10.1145/3828.3835
7736:Tarjan, Robert E.
7621:978-1-118-77133-4
7500:10.1002/spe.v39:1
6982:{\displaystyle S}
6962:{\displaystyle S}
6947:Split Conjecture:
6899:{\displaystyle S}
6876:{\displaystyle m}
6863:be a sequence of
6856:{\displaystyle S}
6841:Deque Conjecture:
6772:{\displaystyle S}
6725:{\displaystyle S}
6640:{\displaystyle O}
6596:{\displaystyle S}
6576:{\displaystyle A}
6492:{\displaystyle x}
6472:{\displaystyle x}
6452:{\displaystyle A}
6362:. Accessing the
6269:
6241:
6226:
6127:
6043:
5640:
5548:
5393:
5374:
5318:
5162:
5050:
4999:
4993:
4930:
4905:
4854:
4843:
4766:
4721:
4670:
4485:Weighted analysis
4259:
4084:
4083:
4050:
4049:
3967:
3966:
3859:
3858:
674:To delete a node
628:as with a normal
201:
200:
197:
196:
16:(Redirected from
8830:
8625:Association list
8457:
8450:
8443:
8434:
7933:
7926:
7919:
7910:
7868:
7833:
7801:
7772:
7744:
7727:
7717:
7703:
7691:
7668:
7641:
7625:
7606:
7581:
7571:
7548:
7538:
7515:
7493:
7475:
7465:
7455:
7428:
7408:
7398:
7364:
7358:
7352:
7350:Afek et al. 2014
7347:
7341:
7335:
7329:
7323:
7317:
7311:
7305:
7299:
7290:
7284:
7278:
7275:Cole et al. 2000
7272:
7266:
7260:
7254:
7248:
7242:
7236:
7227:
7221:
7215:
7209:
7203:
7197:
7191:
7185:
7174:
7168:
7017:
7015:
7014:
7009:
6988:
6986:
6985:
6980:
6968:
6966:
6965:
6960:
6940:
6938:
6937:
6932:
6905:
6903:
6902:
6897:
6882:
6880:
6879:
6874:
6862:
6860:
6859:
6854:
6834:
6832:
6831:
6826:
6805:
6803:
6802:
6797:
6795:
6794:
6778:
6776:
6775:
6770:
6758:
6756:
6755:
6750:
6748:
6747:
6731:
6729:
6728:
6723:
6711:
6709:
6708:
6703:
6701:
6700:
6684:
6682:
6681:
6676:
6674:
6673:
6646:
6644:
6643:
6638:
6602:
6600:
6599:
6594:
6582:
6580:
6579:
6574:
6563:be the cost for
6562:
6560:
6559:
6554:
6533:
6531:
6530:
6525:
6498:
6496:
6495:
6490:
6478:
6476:
6475:
6470:
6458:
6456:
6455:
6450:
6415:
6396:
6394:
6393:
6388:
6353:
6349:Scanning Theorem
6322:
6320:
6318:
6317:
6312:
6283:
6281:
6279:
6278:
6273:
6271:
6268:
6267:
6255:
6243:
6234:
6228:
6219:
6201:
6199:
6198:
6193:
6191:
6190:
6160:
6124:
6122:
6121:
6116:
6114:
6110:
6078:
6002:
6000:
5999:
5994:
5973:
5962:
5960:
5959:
5954:
5952:
5948:
5938:
5924:
5909:
5904:
5823:
5811:
5809:
5807:
5806:
5801:
5799:
5798:
5789:
5760:
5758:
5756:
5755:
5750:
5721:
5719:
5718:
5713:
5711:
5710:
5695:
5681:
5673:
5636:
5634:
5633:
5628:
5626:
5622:
5612:
5598:
5583:
5499:
5464:
5462:
5461:
5456:
5438:
5436:
5435:
5430:
5428:
5427:
5390:
5388:
5387:
5382:
5380:
5376:
5375:
5373:
5372:
5360:
5352:
5351:
5341:
5284:
5282:
5281:
5276:
5274:
5273:
5257:
5238:
5236:
5234:
5233:
5228:
5204:
5202:
5200:
5199:
5194:
5158:
5156:
5155:
5150:
5148:
5144:
5097:
5067:
5065:
5064:
5059:
5057:
5053:
5052:
5051:
5049:
5032:
5022:
4995:
4994:
4992:
4975:
4965:
4912:
4908:
4907:
4906:
4904:
4887:
4877:
4850:
4849:
4845:
4844:
4842:
4825:
4801:
4733:
4731:
4730:
4725:
4723:
4722:
4720:
4703:
4693:
4666:
4665:
4653:
4652:
4623:
4621:
4620:
4615:
4601:
4566:
4480:
4478:
4477:
4472:
4422:
4421:
4420:
4367:
4365:
4364:
4359:
4333:
4323:
4322:
4317:
4290:
4289:
4284:
4267:
4255:
4254:
4242:
4241:
4207:
4205:
4204:
4199:
4164:
4163:
4162:
4059:
4058:
3978:
3977:
3870:
3869:
3797:
3796:
3785:potential method
3740:potential method
3725:
3722:
3719:
3716:
3713:
3710:
3707:
3704:
3701:
3698:
3695:
3692:
3689:
3686:
3683:
3680:
3677:
3674:
3671:
3668:
3665:
3662:
3659:
3656:
3653:
3650:
3647:
3644:
3641:
3638:
3635:
3632:
3629:
3626:
3623:
3620:
3617:
3614:
3611:
3608:
3605:
3602:
3599:
3596:
3593:
3590:
3587:
3584:
3581:
3578:
3575:
3572:
3569:
3566:
3563:
3560:
3557:
3554:
3551:
3548:
3545:
3542:
3539:
3536:
3533:
3530:
3527:
3524:
3521:
3518:
3515:
3512:
3509:
3506:
3503:
3500:
3497:
3494:
3491:
3488:
3485:
3482:
3479:
3476:
3473:
3470:
3467:
3464:
3461:
3458:
3455:
3452:
3449:
3446:
3443:
3440:
3437:
3434:
3431:
3428:
3425:
3422:
3419:
3416:
3413:
3410:
3407:
3404:
3401:
3398:
3395:
3392:
3389:
3386:
3383:
3380:
3377:
3374:
3371:
3368:
3365:
3362:
3359:
3356:
3353:
3350:
3347:
3344:
3341:
3338:
3335:
3332:
3329:
3326:
3323:
3320:
3317:
3314:
3311:
3308:
3305:
3302:
3299:
3296:
3293:
3290:
3287:
3284:
3281:
3278:
3275:
3272:
3269:
3266:
3263:
3260:
3257:
3254:
3251:
3248:
3245:
3242:
3239:
3236:
3233:
3230:
3227:
3224:
3221:
3218:
3215:
3212:
3209:
3206:
3203:
3200:
3197:
3194:
3191:
3188:
3185:
3182:
3179:
3176:
3173:
3170:
3167:
3164:
3161:
3158:
3155:
3152:
3149:
3146:
3143:
3140:
3137:
3134:
3131:
3128:
3125:
3122:
3119:
3116:
3113:
3110:
3107:
3104:
3101:
3098:
3095:
3092:
3089:
3086:
3083:
3080:
3077:
3074:
3071:
3068:
3065:
3062:
3059:
3056:
3053:
3050:
3047:
3044:
3041:
3038:
3035:
3032:
3029:
3026:
3023:
3020:
3017:
3014:
3011:
3008:
3005:
3002:
2999:
2996:
2993:
2990:
2987:
2984:
2981:
2978:
2975:
2972:
2969:
2966:
2963:
2960:
2957:
2954:
2951:
2948:
2945:
2942:
2939:
2936:
2933:
2930:
2927:
2924:
2921:
2918:
2915:
2912:
2909:
2906:
2903:
2900:
2897:
2894:
2891:
2888:
2885:
2882:
2879:
2876:
2873:
2870:
2867:
2864:
2861:
2858:
2855:
2852:
2849:
2846:
2843:
2840:
2837:
2834:
2831:
2828:
2825:
2822:
2819:
2816:
2813:
2810:
2807:
2804:
2801:
2798:
2795:
2792:
2789:
2786:
2783:
2780:
2777:
2774:
2771:
2768:
2765:
2762:
2759:
2756:
2753:
2750:
2747:
2744:
2741:
2738:
2735:
2732:
2729:
2726:
2723:
2720:
2717:
2714:
2711:
2708:
2705:
2702:
2699:
2696:
2693:
2690:
2687:
2684:
2681:
2678:
2675:
2672:
2669:
2666:
2663:
2660:
2657:
2654:
2651:
2648:
2645:
2642:
2639:
2636:
2633:
2630:
2627:
2624:
2621:
2618:
2615:
2612:
2609:
2606:
2603:
2600:
2597:
2594:
2591:
2588:
2585:
2582:
2579:
2576:
2573:
2570:
2567:
2564:
2561:
2558:
2555:
2552:
2549:
2546:
2543:
2540:
2537:
2534:
2531:
2528:
2525:
2522:
2519:
2516:
2513:
2510:
2507:
2504:
2501:
2498:
2495:
2492:
2489:
2486:
2483:
2480:
2477:
2474:
2471:
2468:
2465:
2462:
2459:
2456:
2453:
2450:
2447:
2444:
2441:
2438:
2435:
2432:
2429:
2426:
2423:
2420:
2417:
2414:
2411:
2408:
2405:
2402:
2399:
2396:
2393:
2390:
2387:
2384:
2381:
2378:
2375:
2372:
2369:
2366:
2363:
2360:
2357:
2354:
2351:
2348:
2345:
2342:
2339:
2336:
2333:
2330:
2327:
2324:
2321:
2318:
2315:
2312:
2309:
2306:
2303:
2300:
2297:
2294:
2291:
2288:
2285:
2282:
2279:
2276:
2273:
2270:
2267:
2264:
2261:
2258:
2255:
2252:
2249:
2246:
2243:
2240:
2237:
2234:
2231:
2228:
2225:
2222:
2219:
2216:
2213:
2210:
2207:
2204:
2201:
2198:
2195:
2192:
2189:
2186:
2183:
2180:
2177:
2174:
2171:
2168:
2165:
2162:
2159:
2156:
2153:
2150:
2147:
2144:
2141:
2138:
2135:
2132:
2129:
2126:
2123:
2120:
2117:
2114:
2111:
2108:
2105:
2102:
2099:
2096:
2093:
2090:
2087:
2084:
2081:
2078:
2075:
2072:
2069:
2066:
2063:
2060:
2057:
2054:
2051:
2048:
2045:
2042:
2039:
2036:
2033:
2030:
2027:
2024:
2021:
2018:
2015:
2012:
2009:
2006:
2003:
2000:
1997:
1994:
1991:
1988:
1985:
1982:
1979:
1976:
1973:
1970:
1967:
1964:
1961:
1958:
1955:
1952:
1949:
1946:
1943:
1940:
1937:
1934:
1931:
1928:
1925:
1922:
1919:
1916:
1913:
1910:
1907:
1904:
1901:
1898:
1895:
1892:
1889:
1886:
1883:
1880:
1877:
1874:
1871:
1868:
1865:
1862:
1859:
1856:
1853:
1850:
1847:
1844:
1841:
1838:
1835:
1832:
1829:
1826:
1823:
1820:
1817:
1814:
1811:
1808:
1805:
1802:
1799:
1796:
1793:
1790:
1787:
1784:
1781:
1778:
1775:
1772:
1769:
1766:
1763:
1760:
1757:
1754:
1751:
1748:
1745:
1742:
1739:
1736:
1733:
1730:
1727:
1724:
1721:
1718:
1715:
1712:
1709:
1706:
1703:
1700:
1697:
1694:
1691:
1688:
1685:
1682:
1679:
1676:
1673:
1670:
1667:
1664:
1661:
1658:
1655:
1652:
1649:
1646:
1643:
1640:
1637:
1634:
1631:
1628:
1625:
1622:
1619:
1616:
1613:
1610:
1607:
1604:
1601:
1598:
1595:
1592:
1589:
1586:
1583:
1580:
1577:
1574:
1571:
1568:
1565:
1562:
1559:
1556:
1553:
1550:
1547:
1544:
1541:
1538:
1535:
1532:
1529:
1526:
1523:
1520:
1517:
1514:
1511:
1508:
1505:
1502:
1499:
1496:
1493:
1490:
1487:
1484:
1481:
1478:
1475:
1472:
1469:
1466:
1463:
1460:
1457:
1454:
1451:
1448:
1445:
1442:
1439:
1436:
1433:
1430:
1427:
1424:
1421:
1418:
1415:
1412:
1409:
1406:
1403:
1400:
1397:
1394:
1391:
1388:
1385:
1382:
1379:
1376:
1373:
1370:
1367:
1364:
1361:
1358:
1355:
1352:
1349:
1346:
1343:
1340:
1337:
1334:
1331:
1328:
1325:
1322:
1319:
1316:
1313:
1310:
1307:
1304:
1301:
1298:
1295:
1292:
1289:
1286:
1283:
1280:
1277:
1274:
1271:
1268:
1265:
1262:
1259:
1256:
1253:
1250:
1247:
1244:
1241:
1238:
1235:
1232:
1229:
1226:
1223:
1220:
1217:
1214:
1211:
1208:
1205:
1202:
1199:
1196:
1193:
1190:
1187:
1184:
1181:
1178:
1175:
1172:
1169:
1166:
1163:
1160:
1157:
1154:
1151:
1148:
1145:
1142:
1139:
1136:
1133:
1130:
1127:
1124:
1121:
1118:
1115:
1112:
1109:
1106:
1103:
1100:
1097:
1094:
1091:
1088:
1085:
1082:
1079:
1076:
1073:
1070:
1067:
1064:
1061:
1058:
1055:
1052:
1049:
1046:
1043:
1040:
1037:
1034:
1031:
1028:
1025:
1022:
1019:
1016:
1013:
1010:
1007:
1004:
1001:
998:
995:
992:
989:
986:
983:
980:
977:
974:
971:
968:
965:
962:
959:
956:
953:
950:
947:
944:
941:
938:
935:
932:
929:
926:
923:
920:
917:
914:
911:
908:
905:
902:
899:
896:
893:
890:
887:
884:
881:
878:
875:
872:
869:
866:
863:
860:
857:
854:
851:
848:
845:
842:
839:
836:
833:
830:
827:
824:
821:
818:
815:
812:
809:
806:
803:
800:
797:
794:
791:
788:
785:
782:
779:
776:
773:
770:
767:
764:
761:
758:
755:
752:
749:
746:
743:
740:
737:
292:memory footprint
85:Space complexity
81:
72:Complexities in
32:
21:
8838:
8837:
8833:
8832:
8831:
8829:
8828:
8827:
8803:
8802:
8801:
8796:
8783:
8755:
8649:
8645:XOR linked list
8611:
8587:Circular buffer
8568:
8487:
8466:
8464:Data structures
8461:
8431:
8426:
8330:
8209:
8156:
8085:
8081:Weight-balanced
8036:Order statistic
7950:
7942:
7937:
7875:
7857:
7836:
7804:
7775:
7742:
7730:
7701:
7694:
7688:
7671:
7662:
7644:
7628:
7622:
7609:
7584:
7551:
7518:
7473:
7468:
7431:
7406:
7401:
7376:
7373:
7368:
7367:
7359:
7355:
7348:
7344:
7336:
7332:
7324:
7320:
7312:
7308:
7300:
7293:
7285:
7281:
7273:
7269:
7261:
7257:
7249:
7245:
7237:
7230:
7222:
7218:
7210:
7206:
7198:
7194:
7186:
7177:
7169:
7138:
7133:
7055:
7025:
6991:
6990:
6971:
6970:
6951:
6950:
6908:
6907:
6888:
6887:
6865:
6864:
6845:
6844:
6808:
6807:
6786:
6781:
6780:
6779:of accesses on
6761:
6760:
6739:
6734:
6733:
6714:
6713:
6692:
6687:
6686:
6665:
6660:
6659:
6605:
6604:
6585:
6584:
6565:
6564:
6536:
6535:
6501:
6500:
6481:
6480:
6461:
6460:
6441:
6440:
6426:
6425:
6420:
6417:
6413:
6410:
6404:
6399:
6376:
6375:
6351:
6345:
6337:
6288:
6287:
6285:
6284:. So as before
6259:
6206:
6205:
6203:
6182:
6133:
6132:
6021:
6017:
6009:
6008:
5976:
5975:
5971:
5965:
5850:
5846:
5838:
5837:
5821:
5815:
5814:
5790:
5777:
5776:
5774:
5726:
5725:
5723:
5702:
5646:
5645:
5526:
5522:
5514:
5513:
5497:
5491:
5467:
5441:
5440:
5419:
5399:
5398:
5364:
5343:
5311:
5307:
5299:
5298:
5289:is accessed in
5265:
5260:
5259:
5255:
5249:
5241:
5213:
5212:
5210:
5205:for every node
5170:
5169:
5167:
5116:
5112:
5104:
5103:
5095:
5093:Balance Theorem
5074:
5036:
4979:
4923:
4919:
4891:
4829:
4808:
4804:
4765:
4761:
4753:
4752:
4707:
4657:
4644:
4639:
4638:
4536:
4535:
4487:
4396:
4391:
4390:
4303:
4270:
4246:
4233:
4228:
4227:
4222:
4216:
4129:
4124:
4123:
4119:operations is:
3974:
3866:
3793:
3768:
3732:
3727:
3726:
3723:
3720:
3717:
3714:
3711:
3708:
3705:
3702:
3699:
3696:
3693:
3690:
3687:
3684:
3681:
3678:
3675:
3672:
3669:
3666:
3663:
3660:
3657:
3654:
3651:
3648:
3645:
3642:
3639:
3636:
3633:
3631:subtree_maximum
3630:
3627:
3624:
3621:
3618:
3615:
3612:
3609:
3606:
3603:
3600:
3597:
3594:
3591:
3588:
3586:subtree_minimum
3585:
3582:
3579:
3576:
3573:
3570:
3567:
3564:
3561:
3558:
3555:
3552:
3549:
3546:
3543:
3540:
3537:
3534:
3531:
3528:
3525:
3522:
3519:
3516:
3513:
3510:
3507:
3504:
3501:
3499:if (!z) return;
3498:
3495:
3492:
3489:
3486:
3483:
3480:
3477:
3474:
3471:
3468:
3465:
3462:
3459:
3456:
3453:
3450:
3447:
3444:
3441:
3438:
3435:
3432:
3429:
3426:
3423:
3420:
3417:
3414:
3411:
3408:
3405:
3402:
3399:
3396:
3393:
3390:
3387:
3384:
3381:
3378:
3375:
3372:
3369:
3366:
3363:
3360:
3357:
3354:
3351:
3348:
3345:
3342:
3339:
3336:
3333:
3330:
3327:
3324:
3321:
3318:
3315:
3312:
3309:
3306:
3303:
3300:
3297:
3294:
3291:
3288:
3285:
3282:
3280:subtree_minimum
3279:
3276:
3273:
3270:
3267:
3264:
3261:
3258:
3255:
3252:
3249:
3246:
3243:
3240:
3237:
3234:
3231:
3228:
3225:
3222:
3219:
3216:
3213:
3210:
3207:
3204:
3201:
3198:
3195:
3192:
3189:
3186:
3183:
3180:
3177:
3174:
3171:
3168:
3165:
3162:
3159:
3156:
3153:
3150:
3147:
3144:
3141:
3138:
3135:
3132:
3129:
3126:
3123:
3120:
3117:
3114:
3111:
3108:
3105:
3102:
3099:
3096:
3093:
3090:
3087:
3084:
3081:
3078:
3075:
3072:
3069:
3066:
3063:
3060:
3057:
3054:
3051:
3048:
3045:
3042:
3039:
3036:
3033:
3030:
3027:
3024:
3021:
3018:
3015:
3012:
3009:
3006:
3003:
3000:
2997:
2994:
2991:
2988:
2985:
2982:
2979:
2976:
2973:
2970:
2967:
2964:
2961:
2958:
2955:
2952:
2949:
2946:
2943:
2940:
2937:
2934:
2931:
2928:
2925:
2922:
2919:
2916:
2913:
2910:
2907:
2904:
2901:
2898:
2895:
2892:
2889:
2886:
2883:
2880:
2877:
2874:
2871:
2868:
2865:
2862:
2859:
2856:
2853:
2850:
2847:
2844:
2841:
2838:
2835:
2832:
2829:
2826:
2823:
2820:
2817:
2814:
2811:
2808:
2805:
2802:
2799:
2796:
2793:
2790:
2787:
2784:
2781:
2778:
2775:
2772:
2769:
2766:
2763:
2760:
2757:
2754:
2751:
2748:
2745:
2742:
2739:
2736:
2733:
2730:
2727:
2724:
2721:
2718:
2715:
2712:
2709:
2706:
2703:
2700:
2697:
2694:
2691:
2688:
2685:
2682:
2679:
2676:
2673:
2670:
2667:
2664:
2661:
2658:
2655:
2652:
2649:
2646:
2643:
2640:
2637:
2634:
2631:
2628:
2625:
2622:
2619:
2616:
2613:
2610:
2607:
2604:
2601:
2598:
2595:
2592:
2589:
2586:
2583:
2580:
2577:
2574:
2571:
2568:
2565:
2562:
2559:
2556:
2553:
2550:
2547:
2544:
2541:
2538:
2535:
2532:
2529:
2526:
2523:
2520:
2517:
2514:
2511:
2508:
2505:
2502:
2499:
2496:
2493:
2490:
2487:
2484:
2481:
2478:
2475:
2472:
2469:
2466:
2463:
2460:
2457:
2454:
2452:subtree_maximum
2451:
2448:
2445:
2442:
2439:
2436:
2433:
2430:
2427:
2424:
2421:
2418:
2415:
2412:
2409:
2406:
2403:
2400:
2397:
2394:
2391:
2388:
2385:
2382:
2379:
2377:subtree_minimum
2376:
2373:
2370:
2367:
2364:
2361:
2358:
2355:
2352:
2349:
2346:
2343:
2340:
2337:
2334:
2331:
2328:
2325:
2322:
2319:
2316:
2313:
2310:
2307:
2304:
2301:
2298:
2295:
2292:
2289:
2286:
2283:
2280:
2277:
2274:
2271:
2268:
2265:
2262:
2259:
2256:
2253:
2250:
2247:
2244:
2241:
2238:
2235:
2232:
2229:
2226:
2223:
2220:
2217:
2214:
2211:
2208:
2205:
2202:
2199:
2196:
2193:
2190:
2187:
2184:
2181:
2178:
2175:
2172:
2169:
2166:
2163:
2160:
2157:
2154:
2151:
2148:
2145:
2142:
2139:
2136:
2133:
2130:
2127:
2124:
2121:
2118:
2115:
2112:
2109:
2106:
2103:
2100:
2097:
2094:
2091:
2088:
2085:
2082:
2079:
2076:
2073:
2070:
2067:
2064:
2061:
2058:
2055:
2052:
2049:
2046:
2043:
2040:
2037:
2034:
2031:
2028:
2025:
2022:
2019:
2016:
2013:
2010:
2007:
2004:
2001:
1998:
1995:
1992:
1989:
1986:
1983:
1980:
1977:
1974:
1971:
1968:
1965:
1962:
1959:
1956:
1953:
1950:
1947:
1944:
1941:
1938:
1935:
1932:
1929:
1926:
1923:
1920:
1917:
1914:
1911:
1908:
1905:
1902:
1899:
1896:
1893:
1890:
1887:
1884:
1881:
1878:
1875:
1872:
1869:
1866:
1863:
1860:
1857:
1854:
1851:
1848:
1845:
1842:
1839:
1836:
1833:
1830:
1827:
1824:
1821:
1818:
1815:
1812:
1809:
1806:
1803:
1800:
1797:
1794:
1791:
1788:
1785:
1782:
1779:
1776:
1773:
1770:
1767:
1764:
1761:
1758:
1755:
1752:
1749:
1746:
1743:
1740:
1737:
1734:
1731:
1728:
1725:
1722:
1719:
1716:
1713:
1710:
1707:
1704:
1701:
1698:
1695:
1692:
1689:
1686:
1683:
1680:
1677:
1674:
1671:
1668:
1665:
1662:
1659:
1656:
1653:
1650:
1647:
1644:
1641:
1638:
1635:
1632:
1629:
1626:
1623:
1620:
1617:
1614:
1611:
1608:
1605:
1602:
1599:
1596:
1593:
1590:
1587:
1584:
1581:
1578:
1575:
1572:
1569:
1566:
1563:
1560:
1557:
1554:
1551:
1548:
1545:
1542:
1539:
1536:
1533:
1530:
1527:
1524:
1521:
1518:
1515:
1512:
1509:
1506:
1503:
1500:
1497:
1494:
1491:
1488:
1485:
1482:
1479:
1476:
1473:
1470:
1467:
1464:
1461:
1458:
1455:
1452:
1449:
1446:
1443:
1440:
1437:
1434:
1431:
1428:
1425:
1422:
1419:
1416:
1413:
1410:
1407:
1404:
1401:
1398:
1395:
1392:
1389:
1386:
1383:
1380:
1377:
1374:
1371:
1368:
1365:
1362:
1359:
1356:
1353:
1350:
1347:
1344:
1341:
1338:
1335:
1332:
1329:
1326:
1323:
1320:
1317:
1314:
1311:
1308:
1305:
1302:
1299:
1296:
1293:
1290:
1287:
1284:
1281:
1278:
1275:
1272:
1269:
1266:
1263:
1260:
1257:
1254:
1251:
1248:
1245:
1242:
1239:
1236:
1233:
1230:
1227:
1224:
1221:
1218:
1215:
1212:
1209:
1206:
1203:
1200:
1197:
1194:
1191:
1188:
1185:
1182:
1179:
1176:
1173:
1170:
1167:
1164:
1161:
1158:
1155:
1152:
1149:
1146:
1143:
1140:
1137:
1134:
1131:
1128:
1125:
1122:
1119:
1116:
1113:
1110:
1107:
1104:
1101:
1098:
1095:
1092:
1089:
1086:
1083:
1080:
1077:
1074:
1071:
1068:
1065:
1062:
1059:
1056:
1053:
1050:
1047:
1044:
1041:
1038:
1035:
1032:
1029:
1026:
1023:
1020:
1017:
1014:
1011:
1008:
1005:
1002:
999:
996:
993:
990:
987:
984:
981:
978:
975:
972:
969:
966:
963:
960:
957:
954:
951:
948:
945:
942:
939:
936:
933:
930:
927:
924:
921:
918:
915:
912:
909:
906:
903:
900:
897:
894:
891:
888:
885:
882:
879:
876:
873:
870:
867:
864:
861:
858:
855:
852:
849:
846:
843:
840:
837:
834:
831:
828:
825:
822:
819:
816:
813:
810:
807:
804:
801:
798:
795:
792:
789:
786:
783:
780:
777:
774:
771:
768:
765:
762:
759:
756:
753:
750:
747:
744:
741:
738:
735:
716:
702:Alternatively:
672:
650:Alternatively:
614:
574:
558:
348:
343:
301:
257:
108:Time complexity
28:
23:
22:
15:
12:
11:
5:
8836:
8834:
8826:
8825:
8820:
8815:
8805:
8804:
8798:
8797:
8795:
8794:
8788:
8785:
8784:
8782:
8781:
8776:
8771:
8765:
8763:
8757:
8756:
8754:
8753:
8752:
8751:
8741:
8740:
8739:
8737:Hilbert R-tree
8734:
8729:
8719:
8718:
8717:
8715:Fibonacci heap
8712:
8707:
8697:
8696:
8695:
8690:
8685:
8683:Red–black tree
8680:
8675:
8665:
8659:
8657:
8651:
8650:
8648:
8647:
8642:
8637:
8632:
8627:
8621:
8619:
8613:
8612:
8610:
8609:
8604:
8599:
8594:
8589:
8584:
8578:
8576:
8570:
8569:
8567:
8566:
8565:
8564:
8559:
8549:
8548:
8547:
8540:Priority queue
8537:
8536:
8535:
8525:
8520:
8515:
8514:
8513:
8508:
8497:
8495:
8489:
8488:
8486:
8485:
8480:
8474:
8472:
8468:
8467:
8462:
8460:
8459:
8452:
8445:
8437:
8428:
8427:
8425:
8424:
8419:
8414:
8409:
8404:
8399:
8394:
8389:
8384:
8379:
8374:
8369:
8364:
8359:
8354:
8349:
8344:
8338:
8336:
8332:
8331:
8329:
8328:
8323:
8318:
8313:
8308:
8303:
8298:
8293:
8288:
8283:
8278:
8273:
8268:
8263:
8246:
8241:
8236:
8231:
8226:
8220:
8218:
8211:
8210:
8208:
8207:
8202:
8197:
8195:Ternary search
8192:
8187:
8182:
8177:
8172:
8166:
8164:
8158:
8157:
8155:
8154:
8149:
8144:
8139:
8134:
8129:
8124:
8119:
8111:
8106:
8101:
8095:
8093:
8087:
8086:
8084:
8083:
8078:
8073:
8068:
8063:
8058:
8053:
8043:
8038:
8033:
8028:
8023:
8018:
8008:
8003:
7998:
7993:
7988:
7983:
7978:
7973:
7968:
7962:
7960:
7944:
7943:
7938:
7936:
7935:
7928:
7921:
7913:
7907:
7906:
7901:
7896:
7891:
7886:
7881:
7874:
7873:External links
7871:
7870:
7869:
7855:
7834:
7816:(4): 367–378.
7802:
7773:
7755:(3): 652–686.
7728:
7692:
7686:
7669:
7660:
7642:
7626:
7620:
7607:
7597:(3): 459–466.
7582:
7569:10.1.1.36.2713
7549:
7536:10.1.1.36.4558
7516:
7466:
7446:(4): 526–535.
7429:
7419:(4): 213–221.
7399:
7389:(6): 393–417.
7372:
7369:
7366:
7365:
7353:
7342:
7330:
7318:
7306:
7291:
7279:
7267:
7255:
7243:
7228:
7216:
7204:
7192:
7175:
7135:
7134:
7132:
7129:
7128:
7127:
7122:
7117:
7112:
7107:
7102:
7096:
7094:Scapegoat tree
7091:
7086:
7081:
7076:
7071:
7066:
7061:
7054:
7051:
7024:
7021:
7020:
7019:
7007:
7004:
7001:
6998:
6978:
6958:
6943:
6942:
6930:
6927:
6924:
6921:
6918:
6915:
6895:
6872:
6852:
6837:
6836:
6824:
6821:
6818:
6815:
6793:
6789:
6768:
6746:
6742:
6721:
6699:
6695:
6672:
6668:
6649:
6648:
6636:
6633:
6630:
6627:
6624:
6621:
6618:
6615:
6612:
6592:
6572:
6552:
6549:
6546:
6543:
6523:
6520:
6517:
6514:
6511:
6508:
6488:
6468:
6448:
6421:
6418:
6412:
6406:Main article:
6403:
6400:
6386:
6383:
6346:
6310:
6307:
6304:
6301:
6298:
6295:
6266:
6262:
6258:
6252:
6249:
6246:
6240:
6237:
6231:
6225:
6222:
6216:
6213:
6189:
6185:
6181:
6178:
6175:
6172:
6169:
6166:
6163:
6159:
6155:
6152:
6149:
6146:
6143:
6140:
6126:
6113:
6109:
6106:
6103:
6100:
6097:
6094:
6091:
6088:
6085:
6082:
6077:
6074:
6071:
6068:
6065:
6062:
6059:
6056:
6053:
6050:
6046:
6042:
6039:
6036:
6033:
6030:
6027:
6024:
6020:
6016:
5992:
5989:
5986:
5983:
5966:
5951:
5947:
5944:
5941:
5937:
5933:
5930:
5927:
5923:
5919:
5916:
5913:
5908:
5903:
5900:
5897:
5894:
5891:
5888:
5885:
5882:
5879:
5876:
5873:
5870:
5866:
5862:
5859:
5856:
5853:
5849:
5845:
5816:
5797:
5793:
5788:
5784:
5748:
5745:
5742:
5739:
5736:
5733:
5709:
5705:
5701:
5698:
5694:
5690:
5687:
5684:
5680:
5676:
5672:
5668:
5665:
5662:
5659:
5656:
5653:
5639:
5625:
5621:
5618:
5615:
5611:
5607:
5604:
5601:
5597:
5593:
5590:
5587:
5582:
5579:
5576:
5573:
5570:
5567:
5564:
5561:
5558:
5555:
5551:
5547:
5544:
5541:
5538:
5535:
5532:
5529:
5525:
5521:
5492:
5454:
5451:
5448:
5426:
5422:
5418:
5415:
5412:
5409:
5406:
5392:
5379:
5371:
5367:
5363:
5358:
5355:
5350:
5346:
5340:
5337:
5334:
5331:
5328:
5325:
5321:
5317:
5314:
5310:
5306:
5272:
5268:
5250:
5226:
5223:
5220:
5192:
5189:
5186:
5183:
5180:
5177:
5161:
5147:
5143:
5140:
5137:
5134:
5131:
5128:
5125:
5122:
5119:
5115:
5111:
5090:
5073:
5070:
5069:
5068:
5056:
5048:
5045:
5042:
5039:
5035:
5030:
5027:
5021:
5018:
5015:
5012:
5009:
5006:
5002:
4998:
4991:
4988:
4985:
4982:
4978:
4973:
4970:
4964:
4961:
4958:
4955:
4952:
4949:
4946:
4943:
4940:
4937:
4933:
4929:
4926:
4922:
4918:
4915:
4911:
4903:
4900:
4897:
4894:
4890:
4885:
4882:
4876:
4873:
4870:
4867:
4864:
4861:
4857:
4853:
4848:
4841:
4838:
4835:
4832:
4828:
4823:
4820:
4817:
4814:
4811:
4807:
4800:
4797:
4794:
4791:
4788:
4785:
4782:
4779:
4776:
4773:
4769:
4764:
4760:
4735:
4734:
4719:
4716:
4713:
4710:
4706:
4701:
4698:
4692:
4689:
4686:
4683:
4680:
4677:
4673:
4669:
4664:
4660:
4656:
4651:
4647:
4625:
4624:
4613:
4610:
4607:
4604:
4600:
4597:
4594:
4591:
4587:
4584:
4581:
4578:
4575:
4572:
4569:
4565:
4562:
4559:
4556:
4552:
4549:
4546:
4543:
4529:
4528:
4521:
4506:
4486:
4483:
4482:
4481:
4470:
4467:
4464:
4461:
4458:
4455:
4452:
4449:
4446:
4443:
4440:
4437:
4434:
4431:
4428:
4425:
4419:
4416:
4413:
4410:
4407:
4404:
4399:
4373:big O notation
4369:
4368:
4357:
4354:
4351:
4348:
4345:
4342:
4339:
4336:
4332:
4329:
4326:
4321:
4316:
4313:
4310:
4307:
4302:
4299:
4296:
4293:
4288:
4283:
4280:
4277:
4274:
4266:
4262:
4258:
4253:
4249:
4245:
4240:
4236:
4218:
4212:
4209:
4208:
4197:
4194:
4191:
4188:
4185:
4182:
4179:
4176:
4173:
4170:
4167:
4161:
4158:
4155:
4152:
4149:
4146:
4143:
4140:
4137:
4132:
4086:
4085:
4082:
4081:
4070:
4067:
4066:
4063:
4062:amortized-cost
4052:
4051:
4048:
4047:
4045:
4034:
4031:
4030:
4028:
4027:)
4013:
4010:
4009:
3982:
3973:
3970:
3969:
3968:
3965:
3964:
3962:
3951:
3948:
3947:
3945:
3930:
3927:
3926:
3924:
3923:)
3905:
3902:
3901:
3874:
3865:
3862:
3861:
3860:
3857:
3856:
3854:
3843:
3840:
3839:
3837:
3826:
3823:
3822:
3820:
3819:)
3801:
3792:
3789:
3778:
3777:
3774:
3766:
3759:
3731:
3728:
734:
715:
712:
711:
710:
707:
696:
695:
694:
693:
690:
671:
668:
667:
666:
659:
641:
640:
633:
613:
610:
609:
608:
605:
573:
570:
569:
568:
565:
557:
554:
494:rotate to root
414:
413:
390:
383:
347:
344:
342:
339:
300:
297:
296:
295:
288:
256:
253:
249:tree rotations
234:Daniel Sleator
199:
198:
195:
194:
187:
180:
178:
174:
173:
166:
159:
157:
153:
152:
145:
138:
136:
132:
131:
124:
117:
115:
111:
110:
104:
103:
101:
94:
92:
88:
87:
77:
76:
74:big O notation
69:
68:
59:
55:
54:
51:
47:
46:
43:
37:
36:
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
8835:
8824:
8821:
8819:
8816:
8814:
8811:
8810:
8808:
8793:
8790:
8789:
8786:
8780:
8777:
8775:
8772:
8770:
8767:
8766:
8764:
8762:
8758:
8750:
8747:
8746:
8745:
8742:
8738:
8735:
8733:
8730:
8728:
8725:
8724:
8723:
8720:
8716:
8713:
8711:
8710:Binomial heap
8708:
8706:
8703:
8702:
8701:
8698:
8694:
8691:
8689:
8686:
8684:
8681:
8679:
8676:
8674:
8671:
8670:
8669:
8666:
8664:
8661:
8660:
8658:
8656:
8652:
8646:
8643:
8641:
8638:
8636:
8633:
8631:
8628:
8626:
8623:
8622:
8620:
8618:
8614:
8608:
8607:Sparse matrix
8605:
8603:
8600:
8598:
8595:
8593:
8592:Dynamic array
8590:
8588:
8585:
8583:
8580:
8579:
8577:
8575:
8571:
8563:
8560:
8558:
8555:
8554:
8553:
8550:
8546:
8543:
8542:
8541:
8538:
8534:
8531:
8530:
8529:
8526:
8524:
8521:
8519:
8516:
8512:
8509:
8507:
8504:
8503:
8502:
8499:
8498:
8496:
8494:
8490:
8484:
8481:
8479:
8476:
8475:
8473:
8469:
8465:
8458:
8453:
8451:
8446:
8444:
8439:
8438:
8435:
8423:
8420:
8418:
8415:
8413:
8410:
8408:
8405:
8403:
8400:
8398:
8395:
8393:
8390:
8388:
8385:
8383:
8380:
8378:
8375:
8373:
8372:Hash calendar
8370:
8368:
8365:
8363:
8360:
8358:
8355:
8353:
8350:
8348:
8345:
8343:
8340:
8339:
8337:
8333:
8327:
8324:
8322:
8319:
8317:
8314:
8312:
8309:
8307:
8304:
8302:
8299:
8297:
8294:
8292:
8289:
8287:
8284:
8282:
8279:
8277:
8274:
8272:
8269:
8267:
8264:
8261:
8259:
8253:
8251:
8247:
8245:
8242:
8240:
8237:
8235:
8232:
8230:
8227:
8225:
8222:
8221:
8219:
8216:
8212:
8206:
8203:
8201:
8198:
8196:
8193:
8191:
8188:
8186:
8183:
8181:
8178:
8176:
8173:
8171:
8168:
8167:
8165:
8163:
8159:
8153:
8150:
8148:
8147:van Emde Boas
8145:
8143:
8140:
8138:
8137:Skew binomial
8135:
8133:
8130:
8128:
8125:
8123:
8120:
8118:
8116:
8112:
8110:
8107:
8105:
8102:
8100:
8097:
8096:
8094:
8092:
8088:
8082:
8079:
8077:
8074:
8072:
8069:
8067:
8064:
8062:
8059:
8057:
8054:
8052:
8048:
8044:
8042:
8039:
8037:
8034:
8032:
8029:
8027:
8024:
8022:
8019:
8017:
8016:Binary search
8013:
8009:
8007:
8004:
8002:
7999:
7997:
7994:
7992:
7989:
7987:
7984:
7982:
7979:
7977:
7974:
7972:
7969:
7967:
7964:
7963:
7961:
7958:
7954:
7949:
7945:
7941:
7934:
7929:
7927:
7922:
7920:
7915:
7914:
7911:
7905:
7902:
7900:
7897:
7895:
7892:
7890:
7887:
7885:
7882:
7880:
7877:
7876:
7872:
7866:
7862:
7858:
7852:
7848:
7844:
7840:
7835:
7831:
7827:
7823:
7819:
7815:
7811:
7810:Combinatorica
7807:
7803:
7799:
7795:
7791:
7787:
7784:(1): 95–124.
7783:
7779:
7778:Combinatorica
7774:
7770:
7766:
7762:
7758:
7754:
7750:
7749:
7741:
7737:
7733:
7729:
7725:
7721:
7716:
7711:
7707:
7700:
7699:
7693:
7689:
7687:0-8218-7111-0
7683:
7679:
7675:
7670:
7667:
7663:
7661:0-201-89685-0
7657:
7653:
7652:
7647:
7646:Knuth, Donald
7643:
7640:
7636:
7632:
7627:
7623:
7617:
7613:
7608:
7604:
7600:
7596:
7592:
7588:
7583:
7579:
7575:
7570:
7565:
7561:
7557:
7556:
7550:
7546:
7542:
7537:
7532:
7528:
7524:
7523:
7517:
7514:
7509:
7505:
7501:
7497:
7492:
7491:10.1.1.84.790
7487:
7483:
7479:
7472:
7467:
7463:
7459:
7454:
7449:
7445:
7441:
7440:
7435:
7430:
7426:
7422:
7418:
7414:
7413:
7405:
7400:
7396:
7392:
7388:
7384:
7380:
7375:
7374:
7370:
7362:
7357:
7354:
7351:
7346:
7343:
7339:
7334:
7331:
7327:
7322:
7319:
7315:
7310:
7307:
7303:
7298:
7296:
7292:
7288:
7283:
7280:
7276:
7271:
7268:
7264:
7259:
7256:
7253:, p. 478
7252:
7247:
7244:
7240:
7235:
7233:
7229:
7225:
7220:
7217:
7213:
7208:
7205:
7201:
7196:
7193:
7189:
7184:
7182:
7180:
7176:
7172:
7167:
7165:
7163:
7161:
7159:
7157:
7155:
7153:
7151:
7149:
7147:
7145:
7143:
7141:
7137:
7130:
7126:
7123:
7121:
7118:
7116:
7115:Tree rotation
7113:
7111:
7108:
7106:
7103:
7100:
7097:
7095:
7092:
7090:
7087:
7085:
7084:Link/cut tree
7082:
7080:
7077:
7075:
7072:
7070:
7067:
7065:
7062:
7060:
7057:
7056:
7052:
7050:
7048:
7043:
7039:
7037:
7032:
7030:
7029:semi-splaying
7022:
7002:
6996:
6976:
6956:
6948:
6945:
6944:
6925:
6922:
6919:
6913:
6893:
6885:
6870:
6850:
6842:
6839:
6838:
6819:
6813:
6791:
6787:
6766:
6744:
6740:
6719:
6697:
6693:
6670:
6666:
6657:
6654:
6653:
6652:
6628:
6622:
6619:
6616:
6610:
6590:
6570:
6547:
6541:
6521:
6518:
6512:
6506:
6499:at a cost of
6486:
6466:
6446:
6438:
6435:
6434:
6433:
6431:
6424:
6409:
6401:
6398:
6384:
6381:
6373:
6369:
6365:
6361:
6360:Queue theorem
6357:
6344:
6342:
6336:
6334:
6330:
6326:
6305:
6299:
6296:
6293:
6264:
6260:
6256:
6250:
6247:
6244:
6238:
6235:
6229:
6223:
6220:
6214:
6211:
6187:
6179:
6176:
6170:
6164:
6157:
6153:
6150:
6144:
6138:
6125:
6111:
6104:
6101:
6095:
6089:
6083:
6080:
6075:
6072:
6069:
6066:
6063:
6060:
6057:
6054:
6051:
6048:
6044:
6040:
6037:
6034:
6031:
6028:
6025:
6022:
6018:
6014:
6006:
5987:
5981:
5964:
5949:
5942:
5939:
5931:
5928:
5925:
5914:
5911:
5906:
5901:
5898:
5895:
5892:
5889:
5886:
5883:
5880:
5877:
5874:
5871:
5868:
5864:
5860:
5857:
5854:
5851:
5847:
5843:
5835:
5831:
5827:
5813:
5795:
5791:
5786:
5782:
5772:
5768:
5764:
5743:
5737:
5734:
5731:
5707:
5699:
5696:
5688:
5685:
5682:
5670:
5666:
5663:
5657:
5651:
5638:
5623:
5616:
5613:
5605:
5602:
5599:
5588:
5585:
5580:
5577:
5574:
5571:
5568:
5565:
5562:
5559:
5556:
5553:
5549:
5545:
5542:
5539:
5536:
5533:
5530:
5527:
5523:
5519:
5511:
5507:
5503:
5490:
5488:
5484:
5480:
5476:
5472:
5466:
5452:
5449:
5446:
5424:
5420:
5416:
5410:
5404:
5391:
5377:
5369:
5365:
5361:
5356:
5353:
5348:
5344:
5338:
5335:
5332:
5329:
5326:
5323:
5319:
5315:
5312:
5308:
5304:
5296:
5292:
5288:
5270:
5266:
5248:
5246:
5240:
5224:
5221:
5218:
5208:
5190:
5187:
5181:
5175:
5160:
5145:
5141:
5138:
5135:
5132:
5129:
5126:
5123:
5120:
5117:
5113:
5109:
5101:
5089:
5087:
5083:
5079:
5071:
5054:
5043:
5037:
5033:
5028:
5025:
5019:
5016:
5013:
5010:
5007:
5004:
5000:
4996:
4986:
4980:
4976:
4971:
4968:
4962:
4959:
4956:
4953:
4950:
4947:
4944:
4941:
4938:
4935:
4931:
4927:
4924:
4920:
4916:
4913:
4909:
4898:
4892:
4888:
4883:
4880:
4874:
4871:
4868:
4865:
4862:
4859:
4855:
4851:
4846:
4836:
4830:
4826:
4821:
4818:
4815:
4812:
4809:
4805:
4798:
4795:
4792:
4789:
4786:
4783:
4780:
4777:
4774:
4771:
4767:
4762:
4758:
4751:
4750:
4749:
4746:
4744:
4740:
4714:
4708:
4704:
4699:
4696:
4690:
4687:
4684:
4681:
4678:
4675:
4671:
4667:
4662:
4654:
4649:
4637:
4636:
4635:
4632:
4630:
4605:
4585:
4579:
4576:
4573:
4570:
4547:
4544:
4541:
4534:
4533:
4532:
4526:
4522:
4519:
4515:
4511:
4507:
4504:
4500:
4496:
4492:
4491:
4490:
4484:
4465:
4462:
4459:
4456:
4453:
4450:
4447:
4444:
4441:
4435:
4432:
4426:
4397:
4389:
4388:
4387:
4384:
4382:
4378:
4374:
4352:
4349:
4346:
4343:
4337:
4334:
4327:
4319:
4300:
4294:
4286:
4264:
4260:
4256:
4251:
4243:
4238:
4226:
4225:
4224:
4221:
4215:
4192:
4189:
4186:
4183:
4177:
4174:
4168:
4130:
4122:
4121:
4120:
4118:
4114:
4109:
4107:
4103:
4099:
4095:
4091:
4079:
4075:
4071:
4069:
4068:
4064:
4061:
4060:
4057:
4056:
4055:
4046:
4043:
4039:
4035:
4033:
4032:
4029:
4026:
4022:
4018:
4014:
4012:
4011:
4007:
4003:
3999:
3995:
3991:
3987:
3980:
3979:
3976:
3975:
3971:
3963:
3960:
3956:
3952:
3950:
3949:
3946:
3943:
3939:
3935:
3931:
3929:
3928:
3925:
3922:
3918:
3914:
3910:
3906:
3904:
3903:
3899:
3895:
3891:
3887:
3883:
3879:
3872:
3871:
3868:
3867:
3863:
3855:
3852:
3848:
3844:
3842:
3841:
3838:
3835:
3831:
3827:
3825:
3824:
3821:
3818:
3814:
3810:
3806:
3802:
3799:
3798:
3795:
3794:
3790:
3788:
3786:
3783:To apply the
3781:
3775:
3772:
3764:
3760:
3757:
3753:
3749:
3745:
3744:
3743:
3741:
3737:
3729:
3724:// SPLAY_TREE
732:
730:
724:
720:
713:
708:
705:
704:
703:
700:
691:
688:
687:
685:
681:
680:
679:
677:
669:
664:
660:
657:
653:
652:
651:
648:
646:
638:
634:
631:
627:
623:
622:
621:
619:
611:
606:
603:
599:
595:
591:
590:
589:
587:
583:
579:
571:
566:
563:
562:
561:
555:
550:
546:
544:
540:
536:
532:
528:
524:
520:
516:
512:
508:
507:Zig-zag step:
501:
497:
495:
491:
487:
483:
479:
475:
471:
467:
463:
459:
455:
451:
450:Zig-zig step:
444:
440:
438:
434:
430:
426:
422:
418:
411:
407:
403:
399:
395:
391:
388:
384:
381:
377:
373:
372:
371:
368:
365:
361:
357:
353:
345:
340:
338:
336:
331:
329:
325:
320:
318:
314:
310:
306:
299:Disadvantages
298:
293:
289:
286:
285:
284:
281:
279:
275:
271:
267:
263:
254:
252:
250:
246:
241:
239:
238:Robert Tarjan
235:
230:
226:
222:
218:
214:
210:
206:
192:
188:
185:
181:
179:
175:
171:
167:
164:
160:
158:
154:
150:
146:
143:
139:
137:
133:
130:
129:
125:
123:
122:
118:
116:
112:
109:
105:
102:
99:
95:
93:
89:
86:
82:
78:
75:
70:
67:
63:
60:
56:
52:
48:
44:
42:
38:
33:
30:
19:
8818:Search trees
8813:Binary trees
8692:
8562:Disjoint-set
8257:
8249:
8114:
8060:
8047:Left-leaning
7953:dynamic sets
7948:Search trees
7904:Zipper Trees
7838:
7813:
7809:
7781:
7777:
7752:
7746:
7705:
7697:
7673:
7665:
7649:
7638:
7634:
7611:
7594:
7590:
7562:(1): 44–85.
7559:
7553:
7526:
7520:
7511:
7508:11382/102133
7484:(1): 33–45.
7481:
7477:
7443:
7437:
7416:
7410:
7386:
7382:
7356:
7345:
7333:
7321:
7314:Elmasry 2004
7309:
7282:
7270:
7258:
7246:
7219:
7207:
7195:
7049:splay tree.
7044:
7040:
7035:
7033:
7028:
7026:
6946:
6840:
6655:
6650:
6436:
6429:
6427:
6371:
6367:
6363:
6359:
6355:
6347:
6338:
6332:
6328:
6324:
6130:
6004:
5967:
5833:
5829:
5825:
5817:
5770:
5766:
5762:
5643:
5509:
5505:
5501:
5493:
5483:average case
5478:
5470:
5468:
5396:
5294:
5290:
5286:
5251:
5244:
5242:
5206:
5165:
5099:
5091:
5085:
5081:
5077:
5075:
4747:
4742:
4738:
4736:
4633:
4628:
4626:
4530:
4524:
4523:Define rank(
4517:
4513:
4509:
4508:Define size(
4502:
4498:
4494:
4488:
4385:
4380:
4376:
4370:
4219:
4213:
4210:
4116:
4112:
4110:
4105:
4101:
4097:
4093:
4087:
4077:
4073:
4065:= cost + ΔΦ
4053:
4041:
4037:
4024:
4020:
4016:
4005:
4001:
3997:
3993:
3989:
3985:
3972:Zig-zag step
3958:
3954:
3941:
3937:
3933:
3920:
3916:
3912:
3908:
3897:
3893:
3889:
3885:
3881:
3877:
3864:Zig-zig step
3850:
3846:
3833:
3829:
3816:
3812:
3808:
3804:
3782:
3779:
3770:
3762:
3755:
3751:
3747:
3733:
3529:root = sMax;
3526:splay(sMax);
2152:right_rotate
2089:right_rotate
1879:right_rotate
1855:right_rotate
1741:right_rotate
1315:right_rotate
728:
725:
721:
717:
701:
697:
683:
675:
673:
662:
655:
649:
644:
642:
636:
625:
617:
615:
601:
597:
593:
585:
581:
577:
575:
559:
542:
538:
534:
530:
526:
522:
518:
514:
510:
506:
505:
493:
489:
485:
481:
477:
473:
469:
465:
461:
457:
453:
449:
448:
436:
432:
428:
424:
420:
419:
415:
409:
405:
401:
397:
393:
386:
379:
375:
369:
363:
359:
355:
351:
350:When a node
349:
334:
332:
327:
323:
321:
316:
312:
304:
302:
282:
280:algorithms.
265:
261:
258:
244:
242:
220:
204:
202:
190:
183:
169:
162:
148:
141:
127:
120:
97:
29:
8705:Binary heap
8630:Linked list
8347:Exponential
8335:Other trees
7841:: 477–508.
7529:(1): 1–43.
7338:Sundar 1992
7326:Pettie 2008
7302:Tarjan 1985
7069:Finger tree
4516:(including
4023:) − 2 rank(
3953:≤ 3(rank'(
3940:) − 2 rank(
3754:(including
2134:left_rotate
2107:left_rotate
1996:left_rotate
1972:left_rotate
1762:left_rotate
991:left_rotate
406:grandparent
360:splay steps
58:Invented by
8807:Categories
8693:Splay tree
8597:Hash table
8478:Collection
8291:Priority R
8041:Palindrome
7371:References
7251:Knuth 1997
7239:Lucas 1991
5247:accesses.
5088:elements.
4371:where the
4090:telescopes
4072:≤ 3(rank'(
4036:≤ 3(rank'(
4019:) + rank'(
4000:) + rank'(
3992:) + rank'(
3936:) + rank'(
3911:) + rank'(
3892:) + rank'(
3884:) + rank'(
3811:) + rank'(
3742:. Define:
2527:splay_tree
2047:&&
1930:&&
1813:&&
793:splay_tree
341:Operations
255:Advantages
205:splay tree
128:Worst Case
35:Splay tree
8749:Hash tree
8635:Skip list
8582:Bit array
8483:Container
8377:iDistance
8256:implicit
8244:Hilbert R
8239:Cartesian
8122:Fibonacci
8056:Scapegoat
8051:Red–black
7865:244709005
7715:0707.2160
7564:CiteSeerX
7531:CiteSeerX
7486:CiteSeerX
7287:Cole 2000
7099:Splaysort
6248:⋯
6084:
6052:∈
6045:∑
6035:
5929:−
5915:
5878:∈
5865:∑
5686:−
5603:−
5589:
5557:∈
5550:∑
5540:
5357:
5327:∈
5320:∑
5139:
5124:
5029:
5008:∈
5001:∑
4972:
4939:∈
4932:∑
4884:
4863:∈
4856:∑
4822:
4775:∈
4768:∑
4700:
4679:∈
4672:∑
4668:≤
4659:Φ
4655:−
4646:Φ
4586:−
4497:a weight
4463:
4448:
4350:
4301:−
4261:∑
4248:Φ
4244:−
4235:Φ
4190:
4113:amortized
4004:) − rank(
3996:) − rank(
3988:) − rank(
3932:≤ rank'(
3919:) − rank(
3915:) − rank(
3907:= rank'(
3896:) − rank(
3888:) − rank(
3880:) − rank(
3849:) − rank(
3832:) − rank(
3815:) − rank(
3807:) − rank(
3734:A simple
3556:p_size--;
3547:root = t;
3511:delete z;
3502:splay(z);
612:Insertion
525:is left,
421:Zig step:
309:amortized
240:in 1985.
225:amortized
121:Amortized
8678:AVL tree
8557:Multiset
8506:Multimap
8493:Abstract
8392:Link/cut
8104:Binomial
8031:Interval
7830:34757821
7798:27422556
7738:(1985).
7648:(1997).
7462:15967344
7059:AVL tree
7053:See also
7047:succinct
7023:Variants
4015:≤ rank'(
3984:= rank'(
3876:= rank'(
3845:≤ rank'(
3828:= rank'(
3803:= rank'(
3791:Zig step
3730:Analysis
3688:unsigned
3535:if (t) {
3517:if (s) {
814:unsigned
787:>>
763:typename
754:typename
748:template
736:#include
670:Deletion
400:parent,
392:whether
385:whether
374:Whether
346:Splaying
245:splaying
114:Function
50:Invented
8732:R+ tree
8727:R* tree
8673:AA tree
8352:Fenwick
8316:Segment
8215:Spatial
8132:Pairing
8127:Leftist
8049:)
8021:Dancing
8014:)
8012:Optimal
7769:1165848
7720:Bibcode
6358:or the
6321:
6286:
6282:
6204:
5810:
5775:
5759:
5724:
5722:. Then
5487:entropy
5439:. Then
5237:
5211:
5209:. Then
5203:
5168:
4104:)−rank(
4076:)−rank(
4044:)) − 2
4040:)−rank(
3961:)) − 2
3957:)−rank(
3765:) = log
3721:#endif
3679:nullptr
3619:maximum
3574:minimum
3400:replace
3325:replace
3238:replace
3190:replace
3076:nullptr
2623:nullptr
2542:nullptr
2182:replace
937:nullptr
925:nullptr
913:nullptr
799:private
624:Insert
480:parent
229:entropy
8761:Graphs
8722:R-tree
8663:B-tree
8617:Linked
8574:Arrays
8402:Merkle
8367:Fusion
8357:Finger
8281:Octree
8271:Metric
8205:Y-fast
8200:X-fast
8190:Suffix
8109:Brodal
8099:Binary
7863:
7853:
7828:
7796:
7767:
7684:
7658:
7618:
7566:
7533:
7488:
7460:
7105:T-tree
7064:B-tree
4627:where
3769:(size(
3709:p_size
3706:return
3670:return
3628:return
3583:return
3538:if (s)
3478:p_size
3469:delete
3454:parent
3385:parent
3310:parent
3151:return
3073:return
3061:return
2884:p_size
2755:parent
2569:insert
2548:p_size
2521:public
2509:return
2434:return
2362:parent
2350:parent
2314:parent
2287:parent
2269:parent
2230:parent
2164:parent
2146:parent
2119:parent
2101:parent
2080:parent
2062:parent
2056:parent
2032:parent
2008:parent
1990:parent
1984:parent
1963:parent
1945:parent
1939:parent
1915:parent
1891:parent
1873:parent
1867:parent
1846:parent
1828:parent
1822:parent
1798:parent
1774:parent
1753:parent
1723:parent
1702:parent
1696:parent
1672:parent
1621:parent
1567:parent
1540:parent
1522:parent
1483:parent
1459:parent
1447:parent
1429:parent
1297:parent
1243:parent
1216:parent
1198:parent
1159:parent
1135:parent
1123:parent
1105:parent
931:parent
862:parent
826:struct
820:p_size
592:Splay
290:Small
274:caches
182:O(log
177:Delete
161:O(log
156:Insert
140:O(log
135:Search
8655:Trees
8528:Queue
8523:Stack
8471:Types
8412:Range
8382:K-ary
8342:Cover
8185:Radix
8170:Ctrie
8162:Tries
8091:Heaps
8071:Treap
8061:Splay
8026:HTree
7981:(a,b)
7971:2–3–4
7861:S2CID
7826:S2CID
7794:S2CID
7765:S2CID
7743:(PDF)
7710:arXiv
7702:(PDF)
7474:(PDF)
7458:S2CID
7407:(PDF)
7131:Notes
7120:Trees
7110:Treap
6128:Proof
5641:Proof
5394:Proof
5163:Proof
3761:rank(
3746:size(
3700:const
3664:const
3658:empty
3643:->
3616:&
3610:const
3598:->
3571:&
3565:const
3451:->
3445:->
3433:->
3421:->
3382:->
3379:right
3376:->
3367:right
3364:->
3355:right
3352:->
3343:right
3340:->
3307:->
3292:right
3289:->
3253:->
3232:right
3229:->
3208:right
3205:->
3181:->
3157:splay
3100:&
3094:const
3088:erase
3049:->
3031:->
3001:right
2998:->
2974:->
2944:while
2914:&
2908:const
2872:splay
2857:->
2839:right
2836:->
2824:->
2812:->
2752:->
2716:->
2698:right
2695:->
2671:->
2629:while
2581:&
2575:const
2503:right
2500:->
2485:right
2482:->
2473:while
2425:->
2407:->
2398:while
2359:->
2347:->
2320:right
2317:->
2311:->
2290:->
2284:->
2272:->
2266:->
2227:->
2161:->
2143:->
2116:->
2098:->
2077:->
2068:right
2065:->
2059:->
2053:->
2035:->
2029:->
2005:->
1987:->
1981:->
1960:->
1951:right
1948:->
1942:->
1936:->
1921:right
1918:->
1912:->
1888:->
1870:->
1864:->
1843:->
1831:->
1825:->
1819:->
1801:->
1795:->
1771:->
1750:->
1726:->
1720:->
1699:->
1693:->
1669:->
1660:while
1639:splay
1618:->
1603:right
1600:->
1573:right
1570:->
1564:->
1543:->
1537:->
1525:->
1519:->
1480:->
1456:->
1444:->
1426:->
1423:right
1420:->
1411:right
1408:->
1393:right
1390:->
1378:->
1351:->
1294:->
1276:->
1249:right
1246:->
1240:->
1219:->
1213:->
1201:->
1195:->
1156:->
1132:->
1120:->
1102:->
1096:->
1084:->
1066:->
1057:right
1054:->
1030:right
1027:->
919:right
889:&
883:const
850:right
790:class
572:Split
488:with
476:with
404:(the
219:(log
207:is a
91:Space
8744:Trie
8700:Heap
8518:List
8417:SPQR
8296:Quad
8224:Ball
8180:Hash
8152:Weak
8142:Skew
8117:-ary
7851:ISBN
7682:ISBN
7656:ISBN
7616:ISBN
6949:Let
6843:Let
6685:and
6658:Let
6439:Let
6331:log
6131:Let
5769:log
5644:Let
5397:Let
5258:Let
4743:w(x)
4108:)).
3694:size
3691:long
3673:root
3655:bool
3637:root
3592:root
3544:else
3448:left
3436:left
3424:left
3268:node
3262:else
3256:left
3214:else
3184:left
3124:find
3112:node
3085:void
3058:else
3052:left
3016:comp
3007:else
2965:comp
2938:root
2926:node
2902:find
2896:node
2860:left
2851:else
2803:comp
2794:else
2782:root
2737:node
2719:left
2704:else
2662:comp
2611:node
2605:root
2593:node
2566:void
2536:root
2458:node
2446:node
2428:left
2410:left
2383:node
2371:node
2305:else
2293:left
2275:left
2248:else
2236:root
2200:node
2188:node
2179:void
2128:else
2038:left
2017:else
1900:else
1834:left
1804:left
1783:else
1759:else
1729:left
1645:node
1636:void
1558:else
1546:left
1528:left
1501:else
1489:root
1381:left
1354:left
1336:node
1321:node
1312:void
1279:left
1234:else
1222:left
1204:left
1177:else
1165:root
1099:left
1087:left
1069:left
1012:node
997:node
988:void
982:root
964:node
949:init
907:left
892:init
877:node
856:node
841:left
835:node
829:node
817:long
808:comp
805:Comp
781:<
778:less
766:Comp
751:<
556:Join
541:and
533:and
468:and
460:and
431:and
328:find
324:find
276:and
236:and
64:and
53:1985
45:Tree
41:Type
8552:Set
8422:Top
8276:MVP
8234:BSP
7986:AVL
7966:2–3
7843:doi
7818:doi
7786:doi
7757:doi
7599:doi
7595:314
7574:doi
7541:doi
7504:hdl
7496:doi
7448:doi
7421:doi
7391:doi
6989:is
6806:is
6382:4.5
6335:).
6081:log
6032:log
6007:is
5912:log
5836:is
5586:log
5537:log
5512:is
5477:on
5354:log
5297:is
5136:log
5121:log
5102:is
5080:of
5026:log
4969:log
4881:log
4819:log
4697:log
4460:log
4445:log
4383:).
4347:log
4223:).
4187:log
4080:))
3773:)).
3646:key
3601:key
3130:key
3103:key
3034:key
3022:key
2983:key
2977:key
2917:key
2827:key
2815:key
2743:key
2734:new
2680:key
2674:key
2584:key
943:key
901:())
871:key
772:std
729:not
682:If
478:its
408:of
398:its
8809::
8407:PQ
8321:VP
8311:R*
8306:R+
8286:PH
8260:-d
8252:-d
8229:BK
8076:UB
8001:B*
7996:B+
7976:AA
7859:.
7849:.
7824:.
7812:.
7792:.
7782:12
7780:.
7763:.
7753:32
7751:.
7745:.
7734:;
7718:.
7704:.
7664:.
7593:.
7589:.
7572:.
7560:30
7558:.
7539:.
7527:30
7525:.
7510:.
7502:.
7494:.
7482:39
7480:.
7476:.
7456:.
7444:25
7442:.
7436:.
7417:81
7415:.
7409:.
7387:27
7385:.
7381:.
7294:^
7231:^
7178:^
7139:^
6397:.
6343:.
5963:.
5812:.
5637:.
5465:.
5239:.
5159:.
4745:.
4520:).
4505:).
4008:)
3981:ΔΦ
3944:)
3900:)
3873:ΔΦ
3853:)
3836:)
3800:ΔΦ
3758:).
3718:};
3697:()
3676:==
3661:()
3622:()
3577:()
3562:*/
3481:--
3415:);
3346:);
3313:!=
3298:if
3295:);
3259:);
3217:if
3211:);
3169:if
3166:);
3136:if
3133:);
3037:))
3010:if
2986:))
2959:if
2887:++
2881:);
2830:))
2797:if
2767:if
2746:);
2683:))
2656:if
2545:),
2530:()
2332:if
2260:==
2251:if
2215:if
2167:);
2149:);
2122:);
2104:);
2071:==
2041:==
2020:if
2011:);
1993:);
1954:==
1924:==
1903:if
1894:);
1876:);
1837:==
1807:==
1786:if
1777:);
1756:);
1732:==
1711:if
1681:if
1585:if
1513:==
1504:if
1468:if
1399:if
1360:if
1261:if
1189:==
1180:if
1144:if
1075:if
1036:if
967:()
940:),
928:),
916:),
775:::
545:.
412:).
335:is
260:O(
223:)
203:A
189:O(
168:O(
147:O(
96:O(
8456:e
8449:t
8442:v
8326:X
8301:R
8266:M
8262:)
8258:k
8254:(
8250:k
8115:d
8066:T
8045:(
8010:(
8006:B
7991:B
7959:)
7955:/
7951:(
7932:e
7925:t
7918:v
7867:.
7845::
7832:.
7820::
7814:5
7800:.
7788::
7771:.
7759::
7726:.
7722::
7712::
7690:.
7624:.
7605:.
7601::
7580:.
7576::
7547:.
7543::
7506::
7498::
7464:.
7450::
7427:.
7423::
7397:.
7393::
7363:.
7340:.
7328:.
7316:.
7304:.
7289:.
7277:.
7265:.
7241:.
7226:.
7214:.
7202:.
7190:.
7173:.
7036:m
7018:.
7006:)
7003:n
7000:(
6997:O
6977:S
6957:S
6941:.
6929:)
6926:n
6923:+
6920:m
6917:(
6914:O
6894:S
6871:m
6851:S
6835:.
6823:)
6820:n
6817:(
6814:O
6792:1
6788:T
6767:S
6745:2
6741:T
6720:S
6698:2
6694:T
6671:1
6667:T
6647:.
6635:]
6632:)
6629:S
6626:(
6623:A
6620:+
6617:n
6614:[
6611:O
6591:S
6571:A
6551:)
6548:S
6545:(
6542:A
6522:1
6519:+
6516:)
6513:x
6510:(
6507:d
6487:x
6467:x
6447:A
6416::
6385:n
6372:n
6370:(
6368:O
6364:n
6333:n
6329:n
6327:(
6325:O
6309:)
6306:1
6303:(
6300:O
6297:=
6294:W
6265:2
6261:n
6257:1
6251:,
6245:,
6239:9
6236:1
6230:,
6224:4
6221:1
6215:,
6212:1
6188:2
6184:)
6180:1
6177:+
6174:)
6171:x
6168:(
6165:t
6162:(
6158:/
6154:1
6151:=
6148:)
6145:x
6142:(
6139:w
6112:]
6108:)
6105:1
6102:+
6099:)
6096:x
6093:(
6090:t
6087:(
6076:e
6073:c
6070:n
6067:e
6064:u
6061:q
6058:e
6055:s
6049:x
6041:+
6038:n
6029:n
6026:+
6023:m
6019:[
6015:O
6005:S
5991:)
5988:x
5985:(
5982:t
5950:]
5946:)
5943:1
5940:+
5936:|
5932:x
5926:y
5922:|
5918:(
5907:m
5902:e
5899:c
5896:n
5893:e
5890:u
5887:q
5884:e
5881:s
5875:y
5872:,
5869:x
5861:+
5858:n
5855:+
5852:m
5848:[
5844:O
5834:S
5830:x
5826:y
5796:2
5792:n
5787:/
5783:1
5771:n
5767:n
5765:(
5763:O
5747:)
5744:1
5741:(
5738:O
5735:=
5732:W
5708:2
5704:)
5700:1
5697:+
5693:|
5689:f
5683:x
5679:|
5675:(
5671:/
5667:1
5664:=
5661:)
5658:x
5655:(
5652:w
5624:]
5620:)
5617:1
5614:+
5610:|
5606:f
5600:x
5596:|
5592:(
5581:e
5578:c
5575:n
5572:e
5569:u
5566:q
5563:e
5560:s
5554:x
5546:+
5543:n
5534:n
5531:+
5528:m
5524:[
5520:O
5510:S
5506:f
5502:n
5479:n
5471:n
5453:m
5450:=
5447:W
5425:x
5421:q
5417:=
5414:)
5411:x
5408:(
5405:w
5378:]
5370:x
5366:q
5362:m
5349:x
5345:q
5339:e
5336:e
5333:r
5330:t
5324:x
5316:+
5313:m
5309:[
5305:O
5295:S
5291:S
5287:x
5271:x
5267:q
5245:n
5225:n
5222:=
5219:W
5207:x
5191:1
5188:=
5185:)
5182:x
5179:(
5176:w
5146:]
5142:n
5133:n
5130:+
5127:n
5118:m
5114:[
5110:O
5100:S
5086:n
5082:m
5078:S
5055:)
5047:)
5044:x
5041:(
5038:w
5034:W
5020:e
5017:e
5014:r
5011:t
5005:x
4997:+
4990:)
4987:x
4984:(
4981:w
4977:W
4963:e
4960:c
4957:n
4954:e
4951:u
4948:q
4945:e
4942:s
4936:x
4928:+
4925:m
4921:(
4917:O
4914:=
4910:)
4902:)
4899:x
4896:(
4893:w
4889:W
4875:e
4872:e
4869:r
4866:t
4860:x
4852:+
4847:)
4840:)
4837:x
4834:(
4831:w
4827:W
4816:3
4813:+
4810:1
4806:(
4799:e
4796:c
4793:n
4790:e
4787:u
4784:q
4781:e
4778:s
4772:x
4763:(
4759:O
4739:W
4718:)
4715:x
4712:(
4709:w
4705:W
4691:e
4688:e
4685:r
4682:t
4676:x
4663:f
4650:i
4629:W
4612:)
4609:)
4606:x
4603:(
4599:k
4596:n
4593:a
4590:r
4583:)
4580:t
4577:o
4574:o
4571:r
4568:(
4564:k
4561:n
4558:a
4555:r
4551:(
4548:3
4545:+
4542:1
4525:r
4518:r
4514:r
4510:r
4503:r
4501:(
4499:w
4495:r
4469:)
4466:n
4457:n
4454:+
4451:n
4442:m
4439:(
4436:O
4433:=
4430:)
4427:m
4424:(
4418:l
4415:a
4412:u
4409:t
4406:c
4403:a
4398:T
4381:n
4377:x
4356:)
4353:n
4344:n
4341:(
4338:O
4335:=
4331:)
4328:x
4325:(
4320:f
4315:k
4312:n
4309:a
4306:r
4298:)
4295:x
4292:(
4287:i
4282:k
4279:n
4276:a
4273:r
4265:x
4257:=
4252:f
4239:i
4220:f
4214:i
4196:)
4193:n
4184:m
4181:(
4178:O
4175:=
4172:)
4169:m
4166:(
4160:d
4157:e
4154:z
4151:i
4148:t
4145:r
4142:o
4139:m
4136:a
4131:T
4117:m
4106:x
4102:x
4098:n
4094:x
4078:x
4074:x
4042:x
4038:x
4025:x
4021:p
4017:g
4006:x
4002:x
3998:p
3994:p
3990:g
3986:g
3959:x
3955:x
3942:x
3938:x
3934:g
3921:x
3917:p
3913:p
3909:g
3898:x
3894:x
3890:p
3886:p
3882:g
3878:g
3851:x
3847:x
3834:x
3830:p
3817:x
3813:x
3809:p
3805:p
3771:r
3767:2
3763:r
3756:r
3752:r
3748:r
3715:}
3712:;
3703:{
3685:}
3682:;
3667:{
3652:}
3649:;
3640:)
3634:(
3625:{
3613:T
3607:}
3604:;
3595:)
3589:(
3580:{
3568:T
3559:}
3553:}
3532:}
3487:}
3484:;
3475:;
3472:z
3466:}
3463:;
3460:y
3457:=
3442:y
3439:;
3430:z
3427:=
3418:y
3412:y
3409:,
3406:z
3403:(
3397:}
3394:;
3391:y
3388:=
3373:y
3370:;
3361:z
3358:=
3349:y
3337:y
3334:,
3331:y
3328:(
3322:{
3319:)
3316:z
3304:y
3301:(
3286:z
3283:(
3277:=
3274:y
3271:*
3265:{
3250:z
3247:,
3244:z
3241:(
3235:)
3226:z
3223:!
3220:(
3202:z
3199:,
3196:z
3193:(
3187:)
3178:z
3175:!
3172:(
3163:z
3160:(
3154:;
3148:)
3145:z
3142:!
3139:(
3127:(
3121:=
3118:z
3115:*
3109:{
3106:)
3097:T
3091:(
3082:}
3079:;
3070:}
3067:;
3064:z
3055:;
3046:z
3043:=
3040:z
3028:z
3025:,
3019:(
3013:(
3004:;
2995:z
2992:=
2989:z
2980:,
2971:z
2968:(
2962:(
2956:{
2953:)
2950:z
2947:(
2941:;
2935:=
2932:z
2929:*
2923:{
2920:)
2911:T
2905:(
2899:*
2893:}
2890:;
2878:z
2875:(
2869:;
2866:z
2863:=
2854:p
2848:;
2845:z
2842:=
2833:p
2821:z
2818:,
2809:p
2806:(
2800:(
2791:;
2788:z
2785:=
2779:)
2776:p
2773:!
2770:(
2764:;
2761:p
2758:=
2749:z
2740:(
2731:=
2728:z
2725:}
2722:;
2713:z
2710:=
2707:z
2701:;
2692:z
2689:=
2686:z
2677:,
2668:z
2665:(
2659:(
2653:;
2650:z
2647:=
2644:p
2641:{
2638:)
2635:z
2632:(
2626:;
2620:=
2617:p
2614:*
2608:;
2602:=
2599:z
2596:*
2590:{
2587:)
2578:T
2572:(
2563:}
2560:{
2557:)
2554:0
2551:(
2539:(
2533::
2524::
2518:}
2515:;
2512:u
2506:;
2497:u
2494:=
2491:u
2488:)
2479:u
2476:(
2470:{
2467:)
2464:u
2461:*
2455:(
2449:*
2443:}
2440:;
2437:u
2431:;
2422:u
2419:=
2416:u
2413:)
2404:u
2401:(
2395:{
2392:)
2389:u
2386:*
2380:(
2374:*
2368:}
2365:;
2356:u
2353:=
2344:v
2341:)
2338:v
2335:(
2329:;
2326:v
2323:=
2308:u
2302:;
2299:v
2296:=
2281:u
2278:)
2263:u
2257:u
2254:(
2245:;
2242:v
2239:=
2233:)
2224:u
2221:!
2218:(
2212:{
2209:)
2206:v
2203:*
2197:,
2194:u
2191:*
2185:(
2176:}
2173:}
2170:}
2158:x
2155:(
2140:x
2137:(
2131:{
2125:}
2113:x
2110:(
2095:x
2092:(
2086:{
2083:)
2074:x
2050:x
2044:x
2026:x
2023:(
2014:}
2002:x
1999:(
1978:x
1975:(
1969:{
1966:)
1957:x
1933:x
1927:x
1909:x
1906:(
1897:}
1885:x
1882:(
1861:x
1858:(
1852:{
1849:)
1840:x
1816:x
1810:x
1792:x
1789:(
1780:}
1768:x
1765:(
1747:x
1744:(
1738:)
1735:x
1717:x
1714:(
1708:{
1705:)
1690:x
1687:!
1684:(
1678:{
1675:)
1666:x
1663:(
1657:{
1654:)
1651:x
1648:*
1642:(
1633:}
1630:;
1627:y
1624:=
1615:x
1612:;
1609:x
1606:=
1597:y
1594:)
1591:y
1588:(
1582:;
1579:y
1576:=
1561:x
1555:;
1552:y
1549:=
1534:x
1531:)
1516:x
1510:x
1507:(
1498:;
1495:y
1492:=
1486:)
1477:x
1474:!
1471:(
1465:}
1462:;
1453:x
1450:=
1441:y
1438:;
1435:x
1432:=
1417:y
1414:)
1405:y
1402:(
1396:;
1387:y
1384:=
1375:x
1372:{
1369:)
1366:y
1363:(
1357:;
1348:x
1345:=
1342:y
1339:*
1333:{
1330:)
1327:x
1324:*
1318:(
1309:}
1306:;
1303:y
1300:=
1291:x
1288:;
1285:x
1282:=
1273:y
1270:)
1267:y
1264:(
1258:;
1255:y
1252:=
1237:x
1231:;
1228:y
1225:=
1210:x
1207:)
1192:x
1186:x
1183:(
1174:;
1171:y
1168:=
1162:)
1153:x
1150:!
1147:(
1141:}
1138:;
1129:x
1126:=
1117:y
1114:;
1111:x
1108:=
1093:y
1090:)
1081:y
1078:(
1072:;
1063:y
1060:=
1051:x
1048:{
1045:)
1042:y
1039:(
1033:;
1024:x
1021:=
1018:y
1015:*
1009:{
1006:)
1003:x
1000:*
994:(
985:;
979:*
976:}
973:}
970:{
961:~
958:}
955:{
952:)
946:(
934:(
922:(
910:(
904::
898:T
895:=
886:T
880:(
874:;
868:T
865:;
859:*
853:;
847:*
844:,
838:*
832:{
823:;
811:;
802::
796:{
784:T
769:=
760:,
757:T
684:x
676:x
663:x
656:x
645:x
639:.
637:x
632:.
626:x
618:x
604:.
602:x
598:x
594:x
586:x
582:x
578:x
543:g
539:x
535:x
531:p
527:p
523:x
519:p
515:x
511:p
490:p
486:x
482:g
474:p
470:p
466:x
462:p
458:x
454:p
437:x
433:p
429:x
425:p
410:x
402:g
394:p
387:p
382:,
380:p
376:x
364:x
356:x
352:x
317:n
313:n
305:n
266:n
262:n
221:n
217:O
193:)
191:n
186:)
184:n
172:)
170:n
165:)
163:n
151:)
149:n
144:)
142:n
100:)
98:n
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.