LZ78 アルゴリズムの実装方法について質問があります。辞書を最初のインデックスに入力した後、新しい「キーワード」を追加する可能性はありますか? 私のコードを見てください:
//adding new word to dictionary
int dodaj(unsigned char *dop )
{
int i;
slownik[ adresy[ilosc]*257 ] = dop[0];
for(i=1;i<dop[0]+1;i++)
slownik[ adresy[ilosc]*257+i ] = dop[i];
ilosc++;
if( ilosc>ROZMIAR-1 ) przesun();
}
//move location in dictionary, if full
int przesun()
{
int i,b;
b = adresy[0];
for( i=0; i<ROZMIAR-1; i++ )
{
adresy[i] = adresy[i+1];
}
adresy[ ROZMIAR-1] = b;
ilosc--;
}
私のコードでは、辞書を埋めた後、すべての出現箇所が -1 に移動され、最後の出現箇所が上書きされます。このコードを変更する方法について何か考えはありますか?