You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.9 KiB
70 lines
1.9 KiB
15 years ago
|
/*******************************************************************************
|
||
|
**
|
||
|
** 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
|