Rewrite the MergeList into a array-based & linked member function of the sorted
ID: 3650136 • Letter: R
Question
Rewrite the MergeList into a array-based & linked member function of the sorted list ADT.void MergeLists(SortedType list1, SortedType list2,
SortedType& result)
{
int length1;
int length2;
int counter1 = 1;
int counter2 = 1;
ItemType item1;
ItemType item2;
length1 = list1.LengthIs();
length2 = list2.LengthIs();
list1.ResetList();
list2.ResetList();
list1.GetNextItem(item1);
list2.GetNextItem(item2);
result.MakeEmpty();
while (counter1 <= length1 && counter2 <= length2)
switch (item1.ComparedTo(item2))
{
case LESS : result.InsertItem(item1);
if (counter1 < length1)
list1.GetNextItem(item1);
counter1++;
break;
case GREATER: result.InsertItem(item2);
if (counter2 < length2)
list2.GetNextItem(item2);
counter2++;
break;
}
for (; counter1 <= length1; counter1++)
{
result.InsertItem(item1);
if (counter1 < length1)
list1.GetNextItem(item1);
}
for (; counter2 <= length2; counter2++)
{
result.InsertItem(item2);
if (counter2 < length2)
list2.GetNextItem(item2);
}
}
-----------------
Rewrite the above MergeList into a array-based member function of the sorted list ADT.
Explanation / Answer
#include "sorted.h" SortedType::SortedType() { length = 0; } void SortedType::MakeEmpty() { length = 0; } bool SortedType::IsFull() const { return (length == MAX_ITEMS); } int SortedType::GetLength() const { return length; } void SortedType::RetrieveItem(ItemType& item, bool& found) { int midPoint; int first = 0; int last = length - 1; bool moreToSearch = firstRelated Questions
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.