chap data structures and algorithms fortunatelythe int implementation is not completely true to the abstract integeras there are limitations on the range of values an int variable can store if these limitations prove unacceptablethen some other representation for the adt "integermust be devisedand new implementation must be used for the associated operations example an adt for list of integers might specify the following operationsinsert new integer at particular position in the list return true if the list is empty reinitialize the list return the number of integers currently in the list delete the integer at particular position in the list from this descriptionthe input and output of each operation should be clearbut the implementation for lists has not been specified one application that makes use of some adt might use particular member functions of that adt more than second applicationor the two applications might have different time requirements for the various operations these differences in the requirements of applications are the reason why given adt might be supported by more than one implementation example two popular implementations for large disk-based database applications are hashing (section and the -tree (section both support efficient insertion and deletion of recordsand both support exactmatch queries howeverhashing is more efficient than the -tree for exact-match queries on the other handthe -tree can perform range queries efficientlywhile hashing is hopelessly inefficient for range queries thusif the database application limits searches to exact-match querieshashing is preferred on the other handif the application requires support for range queriesthe -tree is preferred despite these performance issuesboth implementations solve versions of the same problemupdating and searching large collection of records the concept of an adt can help us to focus on key issues even in non-com-uting applications