Which of the following is correct?
B-trees are for storing data on disk and B$^+$ trees are for main memory.
Range queries are faster on B$^+$ trees.
B-trees are for primary indexes and B$^+$ trees are for secondary indexes.
The height of a B$^+$ tree is independent of the number of records.
as A is false, so which data structure is used for main memory ?
The leaves (the bottom-most index blocks) of the B+ tree are often linked to one another in a linked list; this makes range queries or an (ordered) iteration through the blocks simpler and more efficient (though the aforementioned upper bound can be achieved even without this addition). This does not substantially increase space consumption or maintenance on the tree. This illustrates one of the significant advantages of a B+tree over a B-tree; in a B-tree, since not all keys are present in the leaves, such an ordered linked list cannot be constructed.
read @ implementation http://en.wikipedia.org/wiki/B%2B_tree