a. True. When a hash function is used to determine the placement of elements in an array, the order in which the elements are added does not affect the array. The hash function calculates the index of each element based on its value, and this index is used to place the element in the array.
b. False. While increasing the size of the array can reduce the number of collisions in a hashing scheme, it does not always guarantee a reduction in collisions. The effectiveness of increasing the size of the array depends on the quality of the hash function and the distribution of the keys being hashed.
c. False. If we use buckets in a hashing scheme, we still have to worry about collision resolution. In fact, collisions between keys can occur within the same bucket, and we need to have a strategy for resolving these collisions.
d. True. If we use chaining in a hashing scheme, we do not have to worry about collision resolution as much as we would with other collision resolution strategies. Chaining involves creating a linked list of elements that map to the same index in the array, which allows multiple elements to be stored at the same index.
e. True. The goal of a successful hashing scheme is to achieve an O(1) search, meaning that the time required to search for an element is constant and does not depend on the size of the data set. Achieving this goal requires a high-quality hash function and an effective collision resolution strategy.