MSFN Forum: Program to construct a Word Dictionary - MSFN Forum

Jump to content



Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Program to construct a Word Dictionary Rate Topic: -----

#1 User is offline   The_Big_Man 

  • Group: Members
  • Posts: 2
  • Joined: 30-October 05

Posted 30 October 2005 - 08:12 AM

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


Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users



All trademarks mentioned on this page are the property of their respective owners
Copyright © 2001 - 2011 msfn.org
Privacy Policy