Which of the following data structures is on average the
fastest for retrieving data:
1) Binary Tree
2) Hash Table
3) Stack
Answer Posted / jbo5112
It depends on what you're looking for. If you want to find
what you just inserted, then a stack would be best. If you
have some sort of key that you're using to search through
the data, then it depends.
A hash table will generally be better, like Shruti said, but
if your container has few values and your key is large, then
doing a binary search might be faster than computing a hash
value for your key. That, of course, requires your Binary
Tree to be sorted and at least somewhat optimized (not all
branching the same direction). If your data is mostly
ordered, it's also possible to optimize your binary tree
search based on your previous search, but that will slow
down random data. I personally use hash tables or...
A fourth option (if memory permits) is to convert your key
to an integer and use an array. This one is quite easy to
implement (Boost even has one that is STL compliant, w/o
vector's overhead), and unless memory cache sizes come
heavily into play, this one is unbeatable. An example would
be looking up a state's name by the two letter abbreviation.
An array of 32768 char*'s isn't much, and on most computers
(including any x86/x86_64) you can simply look it up by
array[*(int*)"NY"].
| Is This Answer Correct ? | 21 Yes | 0 No |
Post New Answer View All Answers
What is the use of extern in c?
write a program that declares an array of 30 elements named "income" in the main functions. then cal and pass the array to a programmer-defined function named "getIncome" within the "getIncome" function, ask the user for annual income of 30 employees. then calculate and print total income on the screen using the following function: "void getIncome ( ai []);
What does a pointer variable always consist of?
What is a constant and types of constants in c?
Describe the steps to insert data into a singly linked list.
What is a list in c?
What are variables and it what way is it different from constants?
How old is c programming language?
What are the keywords in c?
How is a null pointer different from a dangling pointer?
What is pointer to pointer in c with example?
Differentiate between a for loop and a while loop? What are it uses?
What is identifiers in c with examples?
Is c# a good language?
What is #pragma statements?