Refer to the Table class definition that appears below.
template <class RecordType>
class Table {
public:
// MEMBER CONSTANT
static const size_t TABLE_SIZE = 811;
// CONSTRUCTORS and DESTRUCTOR
Table( );
Table(const Table& source);
~Table( );
// MODIFICATION MEMBER FUNCTIONS
void insert(const RecordType& entry);
void remove(int key);
void operator =(const Table& source);
// CONSTANT MEMBER FUNCTIONS
void find(int key, bool& found, RecordType& result) const;
bool is_present(int key) const;
size_t size( ) const { return total_records; }
private:
Node<RecordType> *data[TABLE_SIZE];
size_t total_records;
// HELPER FUNCTION
size_t hash(int key) const;
Node<RecordType>* find_node(int key) const; };
Assume the following Node template declaration:
template <class Item>
struct Node {
Item data;
Node *link; };
Use the following type for all records:
struct MyRecType {
int key;
int data; };
size_t half(size_t n) {
if (n <= 1) return 0;
else return half(n/2); }
// bool is_present(const int& targetkey) const
// Postcondition: The return value is true if there is a record in the
// Table with the specified key. Otherwise, the return value is false.
void quicksort(int data[ ], size_t n)
{
size_t pivot_index; // Array index for the pivot element
size_t n1; // Number of elements before the pivot element
size_t n2; // Number of elements after the pivot element
if (n > 1)
{
// Partition the array, and set the pivot index
partition(data, n, pivot_index);
// Compute the sizes of the subarrays
n1 = _______________;
n2 = _______________;
// Recursive calls to sort the subarrays
quicksort(_________________________,_________________________);
quicksort(_________________________,_________________________);
}
}
Every AVL tree is balanced in the sense that all of its leaf nodes are at the same depth. Insertion sort is faster than mergesort for array sizes less than 20 or so. A derived class inherits all members of the base class as public members. A graph with n nodes has an adjacency matrix of size nxn