I am trying to figure out how to sort this list of char item[21] by alphabetical order. Any Input is appreciated.
due soon...
due soon...
//shopping.cpp Implementation file for the Shopping class
#include "shopping.h"
#include <iostream>
#include <string>
using namespace std;
Shopping * Shopping::tail = NULL;
Shopping::Shopping(int v, char *s)
{
QTY = v;
strcpy(item, s);
next = NULL;
} // constructor
void Shopping::addItem(Shopping *& h)
{
if (h == NULL) // the list is empty
{
h = this;
tail = this;
}
else
{
tail->next = this;
tail = this;
}
} // addItem
void Shopping::show()
{
cout << QTY << " " << item << endl;
if (next)
next->show(); // recursive call to the neighbor
} // show
void Shopping::clean()
{
Shopping *t = next;
delete this;
if (t)
t->clean();
} // clean
void Shopping::sort()
{
Shopping* current=top;
Shopping* min=NULL;
Shopping* temp=NULL;
char tempitem;
int tempQTY;
///don't know where to go from here.
}
// shopping.h declares the Shopping class
#ifndef SHOPPING
#define SHOPPING
class Shopping
{
protected:
static Shopping *tail; // class attribute
int QTY;
char item[21];
Shopping *next;
Shopping *top;// ????
public:
Shopping(int, char *); // constructor
void addItem(Shopping *&);
void show();
void clean();
void sort();
}; // Shopping
#endif
// The driver for Shopping example (linked List).
#include <fstream>
#include <iostream>
#include "shopping.h"
using namespace std;
int main()
{
Shopping *head = NULL;
void buildList(ifstream &, Shopping *&);
ifstream myfile("shoplist.txt");
if (myfile.fail()) {
cerr << "Cannot open input file\n";
return 1;
}
buildList(myfile, head);
if (head) head->sort();///Correct?
if (head) head->show();
if (head) head->clean();
myfile.close();
return 0;
} // main
void buildList(ifstream &infile, Shopping *&h)
{
char s[21];
int k;
Shopping *temp;
if (infile.eof()) return; // stop recursive call
infile >> k >> s;
temp = new Shopping(k, s);
temp->addItem(h);
buildList(infile, h); // recursive call
} // buildList