Jump to content

Recommended Posts

Posted

I trying to create a word dictionary that reads in words from a file and inputs them onto the screen e.g word followed by space and then definition all one one line and sorts them in ascending order. These are the codings i have so far. Could you help my in telling what i have to do next and whats missing from this coding and anything thing else:

So far i have these codings:

//keyValue.h

#include <string>

class keyValue

{

private:

string word; // primary key value

string definition;

keyValue* next;

keyValue(); // constructor – initialise node

friend class OrderedList;

};

//orderedList.h

#include <string>

class OrderedList

{

public:

OrderedList(); // constructor – initialise empty list

~OrderedList(); // destructor

/* insert data into the list in ascending word order.

If the word is already present in the list, update the existing

definition by concatenating the current one */

void insert( string word, string definition);

/* return definition associated with key ‘w’.

return null string if 'w' is not present in the list */

const string inspect( string w ) const;

// whether 'w' is present in the list

bool isIn( string w ) const;

// whether the list is empty

bool isEmpty() const;

// take a keyValue object containing a word and

// its definition(s). Print it.

void printEntry() const;

private:

keyValue* head;

};

//staticHTable.h

#include <string>

const int TABLE_SIZE = 23;

class staticHTable

{

public:

staticHTable(); // constructor – create empty table

~staticHTable(); // destructor

/* enter data into table.

if the word is already present in the list, update the existing

definition by concatenating the current one */

void put(string w, string d);

/* return definition associated with key 'w'

return null string if 'w’ is not present in the table */

const string get( string w ) const;

private:

struct

{

string word;

string definition;

} sHTable[TABLE_SIZE];

};

//dynamicHTable.h

#include <string>

const int TABLE_SIZE = 23;

class dynamicHTable

{

public:

DynamicHTable(); // constructor – create empty table

~DynamicHTable(); // destructor

/* enter data into table.

if the word is already present in the list, update the existing

definition by concatenating the current one */

void put(string w, string d);

/* return definition associated with key 'w'.

return null string if 'w’ is not present in the table */

const string get( string w ) const;

private:

OrderedList dHTable[TABLE_SIZE];

}

//file OrderedList.cc

#include <iostream>

#include <stddef.h>

#include "OrderedList.h"

using namespace std;

KeyValue::KeyValue()

{

word = "\0";

next = NULL;

definition = "\0";

next = NULL;

}

OrderedList::OrderedList()

{

head = NULL;

}

OrderedList::~OrderedList()

{

KeyValue* current;

KeyValue* it;

it = head;

while (it != NULL)

{

current = it;

it = it->next;

delete current;

}

}

bool OrderedList::isEmpty() const

{

return head == NULL;

}

void OrderedList::insertBefore(const int newval, const int val)

{

KeyValue* p = new KeyValue;

KeyValue* iterator = NULL;

KeyValue* previous = NULL;

p->data = newval;

p->next = NULL;

if (isEmpty())

{

cout << "List is empty\n";

}

else

{

for (iterator = head; iterator != NULL; iterator = iterator->next)

{

if (iterator->data == val)

{

if (iterator == head)

{

head = p;

}

else

{

previous->next = p;

}

p->next = iterator;

break;

}

else

{

previous = iterator;

}

}

}

}

void OrderedList::printEntry() const

{

if (isEmpty())

{

cout << "List empty" << endl;

}

else // walk along list

{

KeyValue* p = NULL;

for (p=head; p!=NULL; p=p->next)

{

cout << p->data << endl; // display data value

}

}

}

thanks


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...