從空格(ASCII碼32)到~(ASCII碼126)。表內的第一行與表頭相同,下面的每一行都與上一行的內容相同,只是字符相左移動了一個位置。這樣,下一行的最后一個字符與上一行的第一個字符相同。
為了進行文本編碼,可以任意選擇一個字符串,稱之為編碼字符串,也就是常說的密鑰。為解釋編碼方法,我們假設密鑰是Walrus,待編碼的文本(即常說的明文)是:
Meet me in St. Louis
我們在待編碼的文本之上重復書寫上述密鑰,使得其長度與待編碼文本相同:
WalrusWalrusWalrusWa
Meet me in St. Louis
從上述兩行文本中按列對應方式依次提取一個字符,可得到多個字符對:WM、ae、le等,這些字符對可用作上表的索引。這樣,依次以這些字符對作為索引可從上表查到一系列字符,這些字符就構成了文本編碼,即常說的密文。例如,第W行第M列隊應得字符是%,因此編碼的第一個字符就是%;第a行第e列對應的字符是G;第l行第e列對應的是R。依次進行上述查找操作,可以得到完整的密文
%Grgua=aVauGLol?eiAU
進行相反的操作就可對該文本解碼。
編寫編碼/解碼程序,可以對文本文件或鍵盤輸入的字符串進行編碼/解碼,在選擇編碼解碼后,需要提示用戶輸入密鑰。
Although there has been a lot of AVL tree libraries available now, nearly all of them are meant to work in the random access memory(RAM). Some of them do provide some mechanism for dumping the whole tree into a file and loading it back to the memory in order to make data in that tree persistent. It serves well when there s just small amount of data. When the tree is somewhat bigger, the dumping/loading process could take a lengthy time and makes your mission-critical program less efficient. How about an AVL tree that can directly use the disk for data storage ? If there s something like that, we won t need to read through the whole tree in order to pick up just a little bit imformation(a node), but read only the sectors that are neccssary for locating a certain node and the sectors in which that node lies. This is my initial motivation for writing a storage-media independent AVL Tree. However, as you step forth, you would find that it not only works fine with disks but also fine with memorys, too.