LZW编码是一种自适应词典编码,通过建立一个字典,实现字符的编码。假设输入的字符串中仅有小写字母和空格,编码方法如下:
(1)初始时,建立一个空字典,把26 个小写字母加入字典中。26 个小写英文字母编码为 1-26,字母“a”的编码为 1,字母“b”的编码为2,其它字母的编码依次增加。
(2)从字符串第一个位置开始扫描,若遇到空格(空格用“*”表示),则得到一个单词,截取该单词并存入变量中。
(3)若该单词在字典中,则取出该单词在字典中的编码值;否则,依次取出该单词中各字母在字典中的编码值,(编码值之间用一个空格分隔),同时产生该单词的编码(编码为字典中的最大编码值加1),加入字典中。
(4)继续扫描字符串,截取单词,并按照步骤(3)的方法进行处理,直至整个字符串编码完毕。字符串“ab ab” LZW 编码过程如图所示。

(1)如果字符串为“ab bb bb”,则其LZW 编码为____________。
(2)请在划线处填入合适的代码。
Dim pos As Integer ,a(1 To 100)As String
Private Sub Form_Load()
'将字母“a”至“z”依次存入数组元素a(1)到 a(26)
End Sub
Function judge(ss As String) As Integer '判断字典中是否有 ss 这个单词
Dim i As Integer judge = 0
For i = 27 To pos
If a(i) =___________________Then judge = i
Exit For
End If
Next i
End Function
Private Sub Command1_Click()
Dim s As String, i As Integer, j As Integer, k As Integer, ch As String, word As String, result As String, Dim id As Integer, idletter As Integer
s = Text1.Text pos = 26: i = 1
Do While i <= Len(s)
j = i
Do While Mid(s, j, 1) <> " " j = j + 1
If j > Len(s) Then Exit Do
Loop
word = Mid(s, i, j - i)
If Len(word) = 1 Then '单个字母的单词
result = result + Str(Asc(word) -Asc("a") + 1)
Else
id = judge(word)
If id = 0 Then '新的单词
For k = 1 To Len(word) '依次处理该单词中的各个字母编码
ch = Mid(word, k, 1)
_____
Next k
pos = pos + 1 '对该单词编码
a(pos) = word
Else '词典中存在该单词
result = result + Str(id) End If
End If
If j < Len(s) Then result = result + " *"
_______
Loop
Text2.Text = result
End Sub