Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

C++ Radix Sort Need help in this program. I have attached the files which required changes and assignment detail. Thankyou // RadixSortDriver.cpp #include RadixSort.h #include

C++ Radix Sort

Need help in this program. I have attached the files which required changes and assignment detail. Thankyou

image text in transcribed

image text in transcribed

// RadixSortDriver.cpp

#include "RadixSort.h"

#include "CD.h"

using CSC1310::CD;

#include "ListArray.h"

using CSC1310::ListArray;

#include "ListArrayIterator.h"

using CSC1310::ListArrayIterator;

#include "Text.h"

using CSC1310::String;

#include

using namespace std;

void deleteCDs(ListArray* list)

{

ListArrayIterator* iter = list->iterator();

while(iter->hasNext())

{

CD* cd = iter->next();

delete cd;

}

delete iter;

}

int main()

{

ListArray* list = CD::readCDs("cds.txt");

int size = list->size();

CD** cds = new CD*[size];

ListArrayIterator* iter = list->iterator();

int count = 0;

while(iter->hasNext())

{

CD* cd = iter->next();

cds[count] = cd;

count++;

}

delete iter;

//DO THIS

//test both radix sort methods using the cds array

delete[] cds;

deleteCDs(list);

delete list;

return 0;

}

................................................................................................................

//RadixSort.h

#if !defined (RADIXSORT_H) #define RADIXSORT_H

#include "QueueLinked.h"

template class RadixSort { private: static void binSort(QueueLinked* bin, int curr_char, int num_chars, char (*getRadixChar) (T* item, int index)); static void radixSortAsc(T** sort, int n, int num_chars, char (*getRadixChar) (T* item, int index)); //algorithm 1 static void radixSortDesc(T** sort, int n, int num_chars, char (*getRadixChar) (T* item, int index)); //algorithm 2 public: static T** radixSort(T** sort, int num_to_sort, int num_chars, bool asc, char (*getRadixChar) (T* item, int index)); };

template T** RadixSort::radixSort(T** unsorted, int num_to_sort, int num_chars, bool asc, char (*getRadixChar) (T* item, int index)) { //DO THIS

}

template void RadixSort::radixSortAsc(T** sort, int n, int num_chars, char (*getRadixChar) (T* st, int index)) { //DO THIS

}

template void RadixSort::binSort(QueueLinked* bin, int curr_char, int num_chars, char (*getRadixChar) (T* st, int index)) { //DO THIS

}

template void RadixSort::radixSortDesc(T** sort, int n, int num_chars, char (*getRadixChar) (T* st, int index)) { int num_queues = 37; //covers letters and digits QueueLinked** bins = new QueueLinked*[num_queues];

//must instantiate each of the queues for (int i = 0; i

for (int i = num_chars; i > 0; i--) /umber of times to bin stuff { //DO THIS

}

for (int i = 0; i

delete[] bins; }

#endif

Program 3 : Radix Sort top o Description In order to be sorted by Radix Sort, objects must have the following static method char getRadixChar Titem, int index)i //index is 1-based This method accepts an object (T is the templated type) and an index. The sort field (a String) is obtained from the object and the character at the requested index is returned. The requested index is 1-based. If the index is out of range, a space (ASCII code 32) is returned. For writing getRadixChar in the CD class, T becomes CD and the method should be static o Templates Use in class to make your Radix Sort as o Radix Sort Radix Sort uses characters in the sort key to perform the sort. Radix Sort also utilizes "bins". which you can model with queues. The characters in the sort key can be digits, letters, or special characters. Sort using the convention that all non-digit and non letter characters (any special characters) come rst ( lace them in bin followed bv digits and then letters (convert uppercase to lowercase letters when sorting). Use the ASC 1 code of the digits and lowercase letters to determine in which bin to place the associated item. You will need to do some arithmetic to convert from ASCII code to queue index. Using the method declarations below, implement Radix Sort using two algorithms. Both algorithms will require the use of bins, or an array of queues (of size 37 for digits, letters, and special characters). The sort parameter is the array containing the items to be sorted. The parameters num to sort and num chars indicate the number of items to sort (starting with the first element in the sort array) and the number of characters to sort to. o Algorithm 1 Sort in ascending order using recursion where the first character is processed first o Algorithm 2 Sort in descending order using a reverse loop and the last character is processed first private: static void binSort (QueueLinked* bin, int curr_char, int num_chars, char (*getRadixChar) (T* item, int index)) static void radixSortAsc(T* sort, int num_to_sort, int num_chars, char (*getRadixChar) (T* item, int index)) //recursion, uses binSort static void radixSortDesc(Tsort, int num_to_sort, int num_chars, char ("getRadixChar) (T* item, int index)//reverse loop public: static T** radixSort (T*sort, int num_to_sort, int num chars, bool asc, char getRadixchar) item, int index)): o Function Pointers Note the use of function pointers to maximize the generality of the sorting algorithms as done in class for other sorting algorithms. o Radix Sort Driver Write a driver (RadixSortDriver) to fully test both of your Radix Sort implementations. Make sure that duplicates are sorted in FIFO order o Necessary Provided Files Program 3 : Radix Sort top o Description In order to be sorted by Radix Sort, objects must have the following static method char getRadixChar Titem, int index)i //index is 1-based This method accepts an object (T is the templated type) and an index. The sort field (a String) is obtained from the object and the character at the requested index is returned. The requested index is 1-based. If the index is out of range, a space (ASCII code 32) is returned. For writing getRadixChar in the CD class, T becomes CD and the method should be static o Templates Use in class to make your Radix Sort as o Radix Sort Radix Sort uses characters in the sort key to perform the sort. Radix Sort also utilizes "bins". which you can model with queues. The characters in the sort key can be digits, letters, or special characters. Sort using the convention that all non-digit and non letter characters (any special characters) come rst ( lace them in bin followed bv digits and then letters (convert uppercase to lowercase letters when sorting). Use the ASC 1 code of the digits and lowercase letters to determine in which bin to place the associated item. You will need to do some arithmetic to convert from ASCII code to queue index. Using the method declarations below, implement Radix Sort using two algorithms. Both algorithms will require the use of bins, or an array of queues (of size 37 for digits, letters, and special characters). The sort parameter is the array containing the items to be sorted. The parameters num to sort and num chars indicate the number of items to sort (starting with the first element in the sort array) and the number of characters to sort to. o Algorithm 1 Sort in ascending order using recursion where the first character is processed first o Algorithm 2 Sort in descending order using a reverse loop and the last character is processed first private: static void binSort (QueueLinked* bin, int curr_char, int num_chars, char (*getRadixChar) (T* item, int index)) static void radixSortAsc(T* sort, int num_to_sort, int num_chars, char (*getRadixChar) (T* item, int index)) //recursion, uses binSort static void radixSortDesc(Tsort, int num_to_sort, int num_chars, char ("getRadixChar) (T* item, int index)//reverse loop public: static T** radixSort (T*sort, int num_to_sort, int num chars, bool asc, char getRadixchar) item, int index)): o Function Pointers Note the use of function pointers to maximize the generality of the sorting algorithms as done in class for other sorting algorithms. o Radix Sort Driver Write a driver (RadixSortDriver) to fully test both of your Radix Sort implementations. Make sure that duplicates are sorted in FIFO order o Necessary Provided Files

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Data Science Project Ideas In Health Care Volume 1

Authors: Zemelak Goraga

1st Edition

B0CPX2RWPF, 979-8223791072

More Books

Students also viewed these Databases questions

Question

1. Identify three approaches to culture.

Answered: 1 week ago

Question

2. Define communication.

Answered: 1 week ago

Question

4. Describe how cultural values influence communication.

Answered: 1 week ago