-
Notifications
You must be signed in to change notification settings - Fork 0
/
mainwindow.h
66 lines (42 loc) · 1.33 KB
/
mainwindow.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QString>
namespace Ui {
class MainWindow;
}
struct ListNode {
QString* data;
ListNode* topLevelNode;
};
class MainWindow : public QMainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
// Derivations search function.
// Allows to search derivations of word in all words list
// Firs parameter - word
// Second parameter - word's index
void searchAnagramDerivations(QString&, int&);
// Derivations chains recursive search
// Allows to recursive search derivations chain and measure their depth
// First parameter - index of last element in chain
// Second parameter - chain depth (count fo elements till top level)
int searchDerivationChain(int&, int&);
// Search longest derivations chain and return last derivation number
// First parameter - number of top level (root) word
int longestDerivationChain(int);
public slots:
// Get derivation for 3-letter word from combo box
void getLongestDerivationForWord(int);
private:
Ui::MainWindow *ui;
// List of words
QStringList words;
// List of derivation
int* derivationIndices;
// List of 3-letter word numbers
QList<int> keyWords;
};
#endif // MAINWINDOW_H