This is the header file provided by my instructor.
//
// unsortedlist.h
//
#ifndef UNSORTED_LIST_H
#define UNSORTED_LIST_H
struct UnsortedListNode // Description of list node
{
char ch; // Stores one character input from file
UnsortedListNode* nextPtr; // Stores address of next node
};
class UnsortedList // Linked list implementation of unsorted list
{
private:
UnsortedListNode* headPtr; // Points to NULL or head of list
int num; // Stores number of items in list
public:
UnsortedList(); // Default constructor - makes list empty
void InsertNewChar(char anotherChar); // Adds anotherChar to head of list
char DeleteFirst(); // Returns char on head of list, deleting that node
bool IsEmpty(); // Returns true if empty, false otherwise
bool IsFull(); // Returns true if full, false otherwise
~UnsortedList(); // Deallocates any remaining nodes on list
};
#endif
This is my implementation of the header file
I am having problems with the deleteFirst() function. What am I doing wrong there.
I have tried for three days to get this to compile.
All this program does is pulls in chars one by one puts them in a list and then reads them from the list and stores them in reverse order in a new file.
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <cmath>
#include <new>
#include <cstddef>
#include "unsortedlist.h"
using namespace std;
UnsortedList::UnsortedList()
{
headPtr = NULL;
num = 0;
}
void UnsortedList::InsertNewChar(char anotherChar)
{
UnsortedListNode* tempPtr = new UnsortedListNode;
tempPtr->ch = anotherChar;
tempPtr->nextPtr = headPtr;
headPtr = tempPtr;
num++;
}
char UnsortedList::DeleteFirst()
{
//char ch;
UnsortedListNode* tempPtr = headPtr;
headPtr = headPtr->nextPtr;
headPtr = tempPtr->ch;
num--;
delete tempPtr;
return ch;
}
bool UnsortedList::IsEmpty()
{
return (headPtr == NULL);
}
/*bool UnsortedList::IsFull()
{
return (num ==
}*/
void UnsortedList::~UnsortedList()
{
//UnsortedListNode ch;
while (!IsEmpty())
{
DeleteFirst();
}
}