blob: 201d1c10434ea517bd51398978aaa5bb7dc4e316 (
plain)
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
67
68
69
|
/*******************************************************************************
**
** Filename : levenshteintable.h
** Created on : 08 november, 2003
** Copyright : (c) 2003 Otto Bruggeman
** Email : bruggie@home.nl
**
*******************************************************************************/
/*******************************************************************************
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
*******************************************************************************/
#ifndef _LEVENSHTEIN_H
#define _LEVENSHTEIN_H
#include "difference.h"
class QString;
namespace Diff2 {
class Marker;
class LevenshteinTable
{
public:
LevenshteinTable();
LevenshteinTable( unsigned int width, unsigned int height );
~LevenshteinTable();
public:
int getContent( unsigned int posX, unsigned int posY ) const;
int setContent( unsigned int posX, unsigned int posY, int value );
bool setSize ( unsigned int width, unsigned int height );
unsigned int width() const { return m_width; };
unsigned int height() const { return m_height; };
/** Debug method to check if the table is properly filled */
void dumpLevenshteinTable( void );
/** This will calculate the levenshtein distance of 2 strings */
unsigned int createTable( DifferenceString* s, DifferenceString* d );
void createListsOfMarkers( void );
int chooseRoute( int c1, int c2, int c3 );
protected:
LevenshteinTable( const LevenshteinTable& table );
const LevenshteinTable& operator = ( const LevenshteinTable& table );
private:
unsigned int m_width;
unsigned int m_height;
unsigned int m_size;
unsigned int* m_table;
DifferenceString* m_source;
DifferenceString* m_destination;
};
} // namespace Diff2
#endif // _LEVENSHTEIN_H
|