Trees (data structures) | Search algorithms

Finger search tree

In computer science, finger search trees are a type of binary search tree that keeps pointers to interior nodes, called fingers. The fingers speed up searches, insertions, and deletions for elements close to the fingers, giving amortized O(log n) lookups, and amortized O(1) insertions and deletions. It should not be confused with a finger tree nor a splay tree, although both can be used to implement finger search trees. Guibas et al.introduced finger search trees, by building upon B-trees. The original version supports finger searches in O(log d) time, where d is the number of elements between the finger and the search target. Updates take O(1) time, when only O(1) moveable fingers are maintained. Moving a finger p positions requires O(log p) time. Huddleston and Mehlhorn refined this idea as level-linked B-trees. Tsakalidis proposed a version based on AVL trees that facilitates searching from the ends of the tree; it can be used to implement a data structure with multiple fingers by using multiple of such trees. To perform a finger search on a binary tree, the ideal way is to start from the finger, and search upwards to the root, until we reach the least common ancestor, also called the turning node, of x and y, and then go downwards to find the element we're looking for. Determining if a node is the ancestor of another is non-trivial. Treaps, a randomized tree structure proposed by Seidel and Aragon, has the property that the expected path length of two elements of distance d is O(log d). For finger searching, they proposed adding pointers to determine the least common ancestor(LCA) quickly, or in every node maintain the minimum and maximum values of its subtree. A book chapter has been written that covers finger search trees in depth. In which, Brodal suggested an algorithm to perform finger search on treaps in O(log d) time, without needing any extra bookkeeping information; this algorithm accomplishes this by concurrently searching downward from the last candidate LCA. (Wikipedia).

Finger search tree
Video thumbnail

Check if a binary tree is binary search tree or not

See complete series on data structures here: http://www.youtube.com/playlist?list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P In this lesson, we have written a program in C/C++ to verify whether a given binary tree is binary search tree or not. For practice problems and more, visit: http://www.m

From playlist Data structures

Video thumbnail

Searching a Tree - Intro to Algorithms

This video is part of an online course, Intro to Algorithms. Check out the course here: https://www.udacity.com/course/cs215.

From playlist Introduction to Algorithms

Video thumbnail

Binary Search Tree Traversals

Related Videos: Binary search tree intro: https://youtu.be/JfSdGQdAzq8 Binary search tree insertions: https://youtu.be/LwpLXm3eb6A Binary search tree removals: https://youtu.be/8K7EO7s_iFE Binary search tree traversals: https://youtu.be/k7GkEbECZK0 Binary search tree code: https://youtu.be

From playlist Data structures playlist

Video thumbnail

Binary search tree - Implementation in C/C++

See complete series on data structures here: http://www.youtube.com/playlist?list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P In this lesson, we have implemented binary search tree in C/C++. We have written a simple program to create a binary search tree of integers and search an element in it.

From playlist Data structures

Video thumbnail

Tree Traversal (Depth-First and Breadth-First Search)

Algorithm Achive: https://www.algorithm-archive.org/chapters/tree_traversal/tree_traversal.html If you want to contribute, here's the github repo: https://github.com/algorithm-archivists/algorithm-archive This past week was crazy, but we got it all done. I tried my best to have code in t

From playlist Algorithm Archive

Video thumbnail

Binary Search Tree Introduction

Related Videos: Binary search tree intro: https://youtu.be/JfSdGQdAzq8 Binary search tree insertions: https://youtu.be/LwpLXm3eb6A Binary search tree removals: https://youtu.be/8K7EO7s_iFE Binary search tree traversals: https://youtu.be/k7GkEbECZK0 Binary search tree code: https://youtu.be

From playlist Data structures playlist

Video thumbnail

Learning To See [Part 12: Let's Get Greedy]

In this series, we'll explore the complex landscape of machine learning and artificial intelligence through one example from the field of computer vision: using a decision tree to count the number of fingers in an image. It's gonna be crazy. Supporting Code: https://github.com/stephencwe

From playlist Learning To See

Video thumbnail

Early Fingerprint Technology | Tomorrow's World | Earth Lab

In 1982 Tomorrow's World got to look at new Fingerprint technology that was allowing Scotland Yard to identify fingerprints quickly using computers. Subscribe for more awesome science - http://www.youtube.com/subscription_center?add_user=HeadsqueezeTV

From playlist Tomorrow's World - Earth Lab - BBC

Video thumbnail

CS50 2021 - Lecture 5 - Data Structures (SDR)

TABLE OF CONTENTS 00:00:00 - Introduction 00:01:17 - Data Structures 00:02:25 - Arrays 00:09:41 - Arrays in C 00:23:50 - Realloc 00:26:34 - Arrow Notation 00:28:58 - Linked Lists 00:43:19 - Building a Linked List 00:51:29 - Linked Lists in C 01:10:09 - Linked List Demonstration 01:17:45 -

From playlist CS50 Lectures 2021 (SDR)

Video thumbnail

CS50 2021 in HDR - Lecture 5 - Data Structures

This is CS50, Harvard University's Introduction to the intellectual enterprises of computer science and the art of programming. Enroll for free at https://cs50.edx.org/. Slides, source code, and more at https://cs50.harvard.edu/x. Playlist at https://www.youtube.com/playlist?list=PLhQjrBD2

From playlist CS50 Lectures 2021 (HDR)

Video thumbnail

Learning To See [Part 13: Heuristics]

In this series, we'll explore the complex landscape of machine learning and artificial intelligence through one example from the field of computer vision: using a decision tree to count the number of fingers in an image. It's gonna be crazy. Supporting Code: https://github.com/stephencwe

From playlist Learning To See

Video thumbnail

Lecture 3: Insertion Sort, Merge Sort

MIT 6.006 Introduction to Algorithms, Fall 2011 View the complete course: http://ocw.mit.edu/6-006F11 Instructor: Srini Devadas License: Creative Commons BY-NC-SA More information at http://ocw.mit.edu/terms More courses at http://ocw.mit.edu

From playlist MIT 6.006 Introduction to Algorithms, Fall 2011

Video thumbnail

Learning To See [Part 15: Information]

In this series, we'll explore the complex landscape of machine learning and artificial intelligence through one example from the field of computer vision: using a decision tree to count the number of fingers in an image. It's gonna be crazy. Supporting Code: https://github.com/stephencwe

From playlist Learning To See

Video thumbnail

Learning to See [Part 10: World Domination]

In this series, we'll explore the complex landscape of machine learning and artificial intelligence through one example from the field of computer vision: using a decision tree to count the number of fingers in an image. It's gonna be crazy. Supporting Code: https://github.com/stephencwe

From playlist Learning To See

Video thumbnail

Unapologetic research stream 6

Broadcasted live on Twitch -- Watch live at https://www.twitch.tv/simuleios

From playlist research

Video thumbnail

Learning To See [Part 2: Rules on Rules on Rules]

In this series, we'll explore the complex landscape of machine learning and artificial intelligence through one example from the field of computer vision: using a decision tree to count the number of fingers in an image. It's gonna be crazy. Code available soon. welchlabs.com @welchlabs

From playlist Learning To See

Video thumbnail

Problem Session 2 (MIT 6.006 Introduction to Algorithms, Spring 2020)

MIT 6.006 Introduction to Algorithms, Spring 2020 Instructor: Justin Solomon View the complete course: https://ocw.mit.edu/6-006S20 YouTube Playlist: https://www.youtube.com/playlist?list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY Four examples of worked problems are given. These fous on solving

From playlist MIT 6.006 Introduction to Algorithms, Spring 2020

Video thumbnail

Binary Search Tree Code

Related Videos: Binary search tree intro: https://youtu.be/JfSdGQdAzq8 Binary search tree insertions: https://youtu.be/LwpLXm3eb6A Binary search tree removals: https://youtu.be/8K7EO7s_iFE Binary search tree traversals: https://youtu.be/k7GkEbECZK0 Binary search tree code: https://youtu.be

From playlist Data structures playlist

Related pages

Big O notation | Finger tree | Finger search | B-tree | Treap | Splay tree | Binary search tree | AVL tree