Expand the project developed in the previous exercise to perform the following experiment:

Expand the project developed in the previous exercise to perform the following experiment: Time the sequential

search and the binary search methods several times each for randomly generated values, and record the results in a table. Do not time individual searches, but groups of them. For example, time 100 searches together or 1,000 searches together. Compare the running times of these two search methods that are obtained during the experiment.

Regarding the efficiency of both search methods, what conclusion can be reached from this experiment? Both the table and your conclusions should be included in a separate Word document.

Exercise 3: Searching Applications

The following problem is a variation of Project 4 in the “Projects” section of Chapter 18 in our textbook:

Consider an array data of n numerical values in sorted order and a list of two numerical target values. Your goal is to compute the smallest range of array indices that contains both of the target values. If a target value is smaller than data[0], the range should start with a -1. If a target value is larger than data[n-1], the range should end with n.

For example, given the array

0 1 2 3 4 5 6 7
5 8 10 13 15 20 22 26

the following table illustrates target values and their corresponding ranges:

2, 8  [-1, 1]
9, 14  [1, 4]
12, 21  [2, 6]
14, 30  [3, 8]

Devise and implement an algorithm that solves this problem.

Exercise 4: Hashing

Suppose that the type of key in a hashing application you are implementing is string (Sections 21.7 and 21.8 in our textbook explain hash functions for strings). Design and implement a hash function that converts a key to a hash value. Test your function by computing the hash values for the Java keywords. Was a key collision produced?

 Search_Algorithms.zip – Preview not available
 
Looking for a Similar Assignment? Order now and Get 10% Discount! Use Coupon Code "Newclient"

Create a project using the classes BinarySearchTree, Node, and Main in Binary Search Tree. Compile the project

Create a project using the classes BinarySearchTree, Node, and Main in Binary Search Tree. Compile the project,

run it, and review the code that is given carefully. These programs test the code discussed in our lecture.

Exercise 2: An Improved BST Class

Add the toString method to the class BinarySearchTree in Exercise 1.

Note: The toString method returns a string representation of the object properties. By implementing toString, a BinarySearchTree object can be displayed in a simple way using System.out.print or System.out.println. For example, if bst is a BinarySearchTree object, it can be printed using System.out.println(bst).

Exercise 3: Using a BST in an Application

Create a class SimpleBag that uses a binary search tree to store the bag items.The class should have the methods listed below. Create a Main class to test your SimpleBag class.

  1. SimpleBag(): default constructor; creates an empty bag
  2. boolean isEmpty(): determines whether the bag is empty
  3. void print(): prints the SimpleBag elements
  4. void clear(): removes all of the items from the bag
  5. void add(int item): adds an item to the bag
  6. int count(int item): counts the number of occurrences of items in the bag.

Exercise 4: Recursion and Binary Trees

Add a recursive function getHeight to the BinarySearchTree class in Exercise 1 that returns the height of the tree. Create a Main class to test it.

Exercise 5: Using Properties of BSTs

Add methods preorderDisplay and postorderDisplay to the BinarySearchTree class in Exercise 1 to print the items in the BST listed in preorder and postorder, respectively. Create a Main class to test them.

 Binary_Search_Tree.zip – Preview not available
 
Looking for a Similar Assignment? Order now and Get 10% Discount! Use Coupon Code "Newclient"

Create seven projects, JCF array list, JCF linked list, JCF sort, JCF stack,

Create seven projects, JCF array listJCF linked listJCF sortJCF stack,

STL doubly linked list, STL stack and queue, and STL vector, using the programs in:

  • JCF array list
  • JCF linked list
  • JCF sort
  • JCF stack
  • STL doubly linked list
  • STL stack and queue
  • STL vector

Compile the projects, run them, and review the code that is given carefully. These programs test the code discussed in our lecture.

Exercise 2: Using the JCF ArrayList

Write a Java program to store 1,000 random numbers, each in the interval [0, 500], in a java.util.ArrayList object. Print the numbers.

Exercise 3: Using the STL Vector

Write a C++ program to store the first 20 factorials: 1!, 2!, 3!, . . . , 20! in a vector object.

Exercise 4: Developing an Application with JCF

Complete Project 2 at the end of Chapter 5 in our textbook: Write a Java program that uses a stack to test whether an input string is a palindrome. To implement the solution to this problem, use the stack data structure in JCF.

Note that this exercise is a variation of Exercise 3 in the lab of Week 3.

Exercise 5: Developing an Application with C++ STL

Complete Project 4 at the end of Chapter 10 in our textbook: Simulate a small airport with one runway. Airplanes waiting to take off join a queue on the ground. Planes waiting to land join a queue in the air. Only one plane can use the runway at any given time. All planes in the air must land before any plane can take off. To implement the solution to this problem, use the queue data structure in C++ STL.

Note that this exercise is a variation of Exercise 6 in the lab of Week 3.

 JCF_array_list.zip – Preview not available
 
Looking for a Similar Assignment? Order now and Get 10% Discount! Use Coupon Code "Newclient"

Exercise 2: Search Algorithms and Techniques Expand the project developed in the previous exercise to

Exercise 2: Search Algorithms and Techniques

Expand the project developed in the previous exercise to

perform the following experiment: Time the sequential search and the binary search methods several times each for randomly generated values, and record the results in a table. Do not time individual searches, but groups of them. For example, time 100 searches together or 1,000 searches together. Compare the running times of these two search methods that are obtained during the experiment.

Regarding the efficiency of both search methods, what conclusion can be reached from this experiment? Both the table and your conclusions should be included in a separate Word document.

Exercise 3: Searching Applications

The following problem is a variation of Project 4 in the “Projects” section of Chapter 18 in our textbook:

Consider an array data of n numerical values in sorted order and a list of two numerical target values. Your goal is to compute the smallest range of array indices that contains both of the target values. If a target value is smaller than data[0], the range should start with a -1. If a target value is larger than data[n-1], the range should end with n.

For example, given the array

0 1 2 3 4 5 6 7
5 8 10 13 15 20 22 26

the following table illustrates target values and their corresponding ranges:

2, 8  [-1, 1]
9, 14  [1, 4]
12, 21  [2, 6]
14, 30  [3, 8]

Devise and implement an algorithm that solves this problem.

Exercise 4: Hashing

Suppose that the type of key in a hashing application you are implementing is string (Sections 21.7 and 21.8 in our textbook explain hash functions for strings). Design and implement a hash function that converts a key to a hash value. Test your function by computing the hash values for the Java keywords. Was a key collision produced?

 Search_Algorithms.zip – Preview not available
 
Looking for a Similar Assignment? Order now and Get 10% Discount! Use Coupon Code "Newclient"