Since a binary search tree with N nodes has N + 1 nullptr pointers, half the space allocated in a binary search tree for pointer information is wasted. Suppose that if a node has a nullptr left child, we make its left child link to its inorder predecessor, and if a node has a nullptr right child, we make its right child link to its inorder successor. This is known as a threaded tree and the extra links are called threads.
How can we distinguish threads from real children pointers?
Write routines to perform insertion and deletion into a tree threaded in the manner described above.
What is the advantage of using threaded trees?