Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * File: WordLadder.cpp
- * --------------------
- * Name: [TODO: enter name here]
- * Section: [TODO: enter section leader here]
- * This file is the starter project for the word ladder problem
- * on Assignment #2.
- * [TODO: extend the documentation]
- */
- #include <iostream>
- //#include <fstream>
- #include <queue>
- #include <vector>
- #include <set>
- #include "console.h"
- #include "simpio.h"
- #include "lexicon.h"
- using namespace std;
- typedef vector <string> svector;
- //svector lexicon;
- // easier for debugging
- ostream& operator <<(ostream& o, const svector& l) {
- for (int i = 0; i < l.size(); i++) {
- o << l[i] << " ";
- }
- o << endl;
- return o;
- }
- svector find_ladder(const string& head_word, const string& tail_word) {
- queue <svector> ladder_queue;
- set <string> is_word_used;
- svector initial_ladder;
- initial_ladder.push_back(head_word);
- ladder_queue.push(initial_ladder);
- while (!ladder_queue.empty()) {
- svector current_ladder = ladder_queue.front(); // get front svector reference
- ladder_queue.pop();
- if (current_ladder[current_ladder.size() - 1] == tail_word) {
- return current_ladder;
- }
- }
- return initial_ladder;
- }
- int main() {
- Lexicon lexicon("EnglishWords.dat");
- cout << lexicon.size() << endl;
- string head_word, tail_word;
- /*while (true) {
- cout << "Enter start word (RETURN to quit) : ";
- cin >> head_word;
- if (head_word == "") break;
- cout << "Enter destination word: ";
- cin >> tail_word;
- cout << find_ladder(head_word, tail_word) << endl;
- }*/
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement