Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Splay Tree Cheruku Ravi Teja November 14, 2011 Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY 1 2 3 4 Introduction Real Time Applications Advantages and Disadvantages Algorithm Operations When to Splay Splaying Zig step Zig-Zig step Zig-Zag step Results of Splaying Insertion Deletion TIME COMPLEXITY Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Real Time Applications Introduction Splay trees are self branching binary search tree which has the property of reaccessing the elements quickly that which are recently accessed. The performance of the Splay trees depends on the self balancing and self optimizing. The worst case with this splay tree algorithm is that this will sequentially access all the elements of the tree which makes tree unbalanced. Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Real Time Applications Real Time Applications It is used to implement caches. It has the ability of not to store any data, which results in minimization of memory requirements. It can also be used for data compression, e.g.dynamic huffman coding. Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Advantages It is easy to implement than other self branching binary search trees, such as Red black trees or AVL trees. Much simpler to code than AVL, Red Black trees. It requires less space as no balance information is required. Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Disadvantages More local adjustments during Search operations. Invidual operations can be expensive, drawback for real-time applications. The main disadvantage of Splay trees is the height. After accessing all 0 n0 elements in the tree, the height of the tree corresponds to worst case access time. Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Operations When to Splay Splaying Zig step Zig-Zig step Zig-Zag step Results of Splaying Insertion Deletion Algorithm Splay trees are self adjusting binary search trees which performs basic operations such as Search Insertion Deletion Search,Insert,Delete operations are like in Binary Search trees, except at the end of each operation, a special step called Splaying is done.Splaying the tree rearranges the tree so that element is placed at the root of the tree.It uses tree rotations to bring the element to the top. Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Operations When to Splay Splaying Zig step Zig-Zig step Zig-Zag step Results of Splaying Insertion Deletion Operations The main basic operations of the Splay tree are Search Insert Delete Splaying Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Operations When to Splay Splaying Zig step Zig-Zig step Zig-Zag step Results of Splaying Insertion Deletion When to Splay Search: Splay node where key was found. Insert: When an item is inserted , a Splay is performed. As a result, the newly inserted node becomes the root of the tree. Delete:Splay parent of removed node which is either the node with the deleted key or its successor. Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Operations When to Splay Splaying Zig step Zig-Zig step Zig-Zag step Results of Splaying Insertion Deletion Splaying To perform a splay operation , there is need to carry out sequence of Splay steps, which moves the node closer to the root. The recently accessed nodes are kept closer to the root so that tree remains balanced. Each Splay step depends on three factors X is left or right child of its parent node P. Check P is root node or not, if not. P is left or right child of its parent G. The three types of Splay steps are Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Operations When to Splay Splaying Zig step Zig-Zig step Zig-Zag step Results of Splaying Insertion Deletion Zig Step Let X be a non root node on the access path on which we are rotating. If the parent P of X is the root of the tree, we merely rotate X and the root. This is same as single rotation. Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Operations When to Splay Splaying Zig step Zig-Zig step Zig-Zag step Results of Splaying Insertion Deletion Zig-zig step Here X and P are either both left children or both right children. The Zig-Zig splay rotates between P and G and X and P. Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Operations When to Splay Splaying Zig step Zig-Zig step Zig-Zag step Results of Splaying Insertion Deletion Zig-Zag step In this case, X and both a parent P and a grandparent G. X is a right child and P is a left child or vice versa. This is same as the double rotation. Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Operations When to Splay Splaying Zig step Zig-Zig step Zig-Zag step Results of Splaying Insertion Deletion Results of Splaying The result is a binary tree, with the left subtree having all keys less than the root, and the right subtree having keys greater than the root. The resulted tree is more balanced than the original tree. If an operation near the root is done, the tree can become less balanced. Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Operations When to Splay Splaying Zig step Zig-Zig step Zig-Zag step Results of Splaying Insertion Deletion Insertion To insert a node in to the tree Insert a node normally in to the tree. Splay the newly inserted node to the top of the tree. Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Operations When to Splay Splaying Zig step Zig-Zig step Zig-Zag step Results of Splaying Insertion Deletion Deletion Access the node to be deleted bringing it to the root. Delete the root leaving two subtrees L left and R right. Find the largest element in L, thus the root of L will have no right child. Make R the right child of L’s root. Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY Operations When to Splay Splaying Zig step Zig-Zig step Zig-Zag step Results of Splaying Insertion Deletion Delete element 6 Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY TIME COMPLEXITY For 0 m0 operations to be performed on splay tree it requires O(mlogn) steps where n is the size of the tree.On an average the time complexity of each operation on the splay tree is Search:Searching for a node in the tree would take O(logn). Insert:Inserting a node in to the tree takes O(logn). Delete:Deleting a node from the tree takes O(logn). Cheruku Ravi Teja Splay Tree Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY References Data Structures and Their Algorithms, Lewis and Denenberg, Harper Collins Algorithms by S Dasgupta U.V Vazirani wikipedia splaytree http://en.wikipedia.org/wiki/Splay tree Self-Adjusting Binary Search Trees DANIEL DOMINIC SLEATOR AND ROBERT ENDRE TARJAN Cheruku Ravi Teja Splay Tree