Efficient Data Structures For Text Processing Applications