Can someone give me a real life example ( in programming, C#) of needing to use a Binary Tree or even just an ordinary tree?
I understand the principle of a Binary Tree and how they work, but I’m trying to find some real life example’s of their usage?
Tony
In C#, Java, Python, C++ (using the STL) and other high-level languages, most of the time you will use one of the built-in/library-included types to store your data, at least the data you work on at the moment, so most of the time you won’t be using a binary tree or another kind of tree explicitly.
This being said, some of these built-in types are implemented as trees of one kind or another “in the backstage”, and in some situations you will have to implement one yourself.
Also, a related thing you HAVE to know is binary search. This is mostly done in binary trees (binary search trees :P) but the idea can be extrapolated to a lot of problems, even without trees involved, so try understand it well.
Edit: Real life classical example:
Imagine that you want to search for the phone number of a particular person in the phone guide of a big city. All things being equal, you will open it roughly at the middle, look for the guys in that page, and see if your “target” is before or after it, thus cutting the data by half. Then you repeat the operation in the half where you know your “target” is, and again and again until you found your “target”. As each time you are looking into half the data you had before, you require a total of log(base 2) n operations to reach your “target”, where n is the total size of the data.
So in a 1 million phone book, you find your target in log(base 2) 1 million = 20 comparisons, instead of comparing one by one as in a linear search (that’s 1 million comparisons in the worst case).
Note that this only work in already sorted data.